12103 */
12104 return (mp1);
12105 }
12106 mp1 = copyb(nce->nce_dlur_mp);
12107
12108 if (mp1 == NULL) {
12109 ill_t *ill = nce->nce_ill;
12110
12111 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
12112 ip_drop_output("ipIfStatsOutDiscards", mp, ill);
12113 freemsg(mp);
12114 return (NULL);
12115 }
12116 mp1->b_cont = mp;
12117 if (priority != 0) {
12118 mp1->b_band = priority;
12119 ((dl_unitdata_req_t *)(mp1->b_rptr))->dl_priority.dl_max =
12120 priority;
12121 }
12122 return (mp1);
12123 #undef rptr
12124 }
12125
12126 /*
12127 * Finish the outbound IPsec processing. This function is called from
12128 * ipsec_out_process() if the IPsec packet was processed
12129 * synchronously, or from {ah,esp}_kcf_callback_outbound() if it was processed
12130 * asynchronously.
12131 *
12132 * This is common to IPv4 and IPv6.
12133 */
12134 int
12135 ip_output_post_ipsec(mblk_t *mp, ip_xmit_attr_t *ixa)
12136 {
12137 iaflags_t ixaflags = ixa->ixa_flags;
12138 uint_t pktlen;
12139
12140
12141 /* AH/ESP don't update ixa_pktlen when they modify the packet */
12142 if (ixaflags & IXAF_IS_IPV4) {
12143 ipha_t *ipha = (ipha_t *)mp->b_rptr;
|
12103 */
12104 return (mp1);
12105 }
12106 mp1 = copyb(nce->nce_dlur_mp);
12107
12108 if (mp1 == NULL) {
12109 ill_t *ill = nce->nce_ill;
12110
12111 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
12112 ip_drop_output("ipIfStatsOutDiscards", mp, ill);
12113 freemsg(mp);
12114 return (NULL);
12115 }
12116 mp1->b_cont = mp;
12117 if (priority != 0) {
12118 mp1->b_band = priority;
12119 ((dl_unitdata_req_t *)(mp1->b_rptr))->dl_priority.dl_max =
12120 priority;
12121 }
12122 return (mp1);
12123 }
12124
12125 /*
12126 * Finish the outbound IPsec processing. This function is called from
12127 * ipsec_out_process() if the IPsec packet was processed
12128 * synchronously, or from {ah,esp}_kcf_callback_outbound() if it was processed
12129 * asynchronously.
12130 *
12131 * This is common to IPv4 and IPv6.
12132 */
12133 int
12134 ip_output_post_ipsec(mblk_t *mp, ip_xmit_attr_t *ixa)
12135 {
12136 iaflags_t ixaflags = ixa->ixa_flags;
12137 uint_t pktlen;
12138
12139
12140 /* AH/ESP don't update ixa_pktlen when they modify the packet */
12141 if (ixaflags & IXAF_IS_IPV4) {
12142 ipha_t *ipha = (ipha_t *)mp->b_rptr;
|