Lines Matching refs:m_head
757 hn_tso_fixup(struct mbuf *m_head) in hn_tso_fixup() argument
763 KASSERT(M_WRITABLE(m_head), ("TSO mbuf not writable")); in hn_tso_fixup()
765 PULLUP_HDR(m_head, sizeof(*evl)); in hn_tso_fixup()
766 evl = mtod(m_head, struct ether_vlan_header *); in hn_tso_fixup()
771 m_head->m_pkthdr.l2hlen = ehlen; in hn_tso_fixup()
774 if (m_head->m_pkthdr.csum_flags & CSUM_IP_TSO) { in hn_tso_fixup()
778 PULLUP_HDR(m_head, ehlen + sizeof(*ip)); in hn_tso_fixup()
779 ip = mtodo(m_head, ehlen); in hn_tso_fixup()
781 m_head->m_pkthdr.l3hlen = iphlen; in hn_tso_fixup()
783 PULLUP_HDR(m_head, ehlen + iphlen + sizeof(*th)); in hn_tso_fixup()
784 th = mtodo(m_head, ehlen + iphlen); in hn_tso_fixup()
799 PULLUP_HDR(m_head, ehlen + sizeof(*ip6)); in hn_tso_fixup()
800 ip6 = mtodo(m_head, ehlen); in hn_tso_fixup()
802 m_freem(m_head); in hn_tso_fixup()
805 m_head->m_pkthdr.l3hlen = sizeof(*ip6); in hn_tso_fixup()
807 PULLUP_HDR(m_head, ehlen + sizeof(*ip6) + sizeof(*th)); in hn_tso_fixup()
808 th = mtodo(m_head, ehlen + sizeof(*ip6)); in hn_tso_fixup()
814 return (m_head); in hn_tso_fixup()
821 hn_set_hlen(struct mbuf *m_head) in hn_set_hlen() argument
826 PULLUP_HDR(m_head, sizeof(*evl)); in hn_set_hlen()
827 evl = mtod(m_head, const struct ether_vlan_header *); in hn_set_hlen()
832 m_head->m_pkthdr.l2hlen = ehlen; in hn_set_hlen()
835 if (m_head->m_pkthdr.csum_flags & (CSUM_IP_TCP | CSUM_IP_UDP)) { in hn_set_hlen()
839 PULLUP_HDR(m_head, ehlen + sizeof(*ip)); in hn_set_hlen()
840 ip = mtodo(m_head, ehlen); in hn_set_hlen()
842 m_head->m_pkthdr.l3hlen = iphlen; in hn_set_hlen()
852 if ((m_head->m_pkthdr.csum_flags & CSUM_IP_UDP) && in hn_set_hlen()
853 m_head->m_pkthdr.len > hn_udpcs_fixup_mtu + ehlen && in hn_set_hlen()
858 PULLUP_HDR(m_head, off + sizeof(struct udphdr)); in hn_set_hlen()
859 *(uint16_t *)(m_head->m_data + off + in hn_set_hlen()
860 m_head->m_pkthdr.csum_data) = in_cksum_skip( in hn_set_hlen()
861 m_head, m_head->m_pkthdr.len, off); in hn_set_hlen()
862 m_head->m_pkthdr.csum_flags &= ~CSUM_IP_UDP; in hn_set_hlen()
873 PULLUP_HDR(m_head, ehlen + sizeof(*ip6)); in hn_set_hlen()
874 ip6 = mtodo(m_head, ehlen); in hn_set_hlen()
877 m_freem(m_head); in hn_set_hlen()
880 m_head->m_pkthdr.l3hlen = sizeof(*ip6); in hn_set_hlen()
883 return (m_head); in hn_set_hlen()
890 hn_check_tcpsyn(struct mbuf *m_head, int *tcpsyn) in hn_check_tcpsyn() argument
896 ehlen = m_head->m_pkthdr.l2hlen; in hn_check_tcpsyn()
897 iphlen = m_head->m_pkthdr.l3hlen; in hn_check_tcpsyn()
899 PULLUP_HDR(m_head, ehlen + iphlen + sizeof(*th)); in hn_check_tcpsyn()
900 th = mtodo(m_head, ehlen + iphlen); in hn_check_tcpsyn()
903 return (m_head); in hn_check_tcpsyn()
2653 struct mbuf **m_head, bus_dma_segment_t *segs, int *nsegs) in hn_txdesc_dmamap_load() argument
2655 struct mbuf *m = *m_head; in hn_txdesc_dmamap_load()
2669 *m_head = m = m_new; in hn_txdesc_dmamap_load()
3053 struct mbuf *m_head = *m_head0; in hn_encap() local
3060 pkt_size = HN_PKTSIZE(m_head, txr->hn_agg_align); in hn_encap()
3071 pkt->rm_len = m_head->m_pkthdr.len; in hn_encap()
3073 pkt->rm_datalen = m_head->m_pkthdr.len; in hn_encap()
3089 if (M_HASHTYPE_ISHASH(m_head)) in hn_encap()
3096 *pi_data = m_head->m_pkthdr.flowid; in hn_encap()
3104 if (m_head->m_flags & M_VLANTAG) { in hn_encap()
3108 EVL_VLANOFTAG(m_head->m_pkthdr.ether_vtag), in hn_encap()
3109 EVL_PRIOFTAG(m_head->m_pkthdr.ether_vtag), in hn_encap()
3110 EVL_CFIOFTAG(m_head->m_pkthdr.ether_vtag)); in hn_encap()
3113 if (m_head->m_pkthdr.csum_flags & CSUM_TSO) { in hn_encap()
3118 if (m_head->m_pkthdr.csum_flags & CSUM_IP_TSO) { in hn_encap()
3120 m_head->m_pkthdr.l2hlen + m_head->m_pkthdr.l3hlen, in hn_encap()
3121 m_head->m_pkthdr.tso_segsz); in hn_encap()
3130 m_head->m_pkthdr.l2hlen + m_head->m_pkthdr.l3hlen, in hn_encap()
3131 m_head->m_pkthdr.tso_segsz); in hn_encap()
3135 } else if (m_head->m_pkthdr.csum_flags & txr->hn_csum_assist) { in hn_encap()
3138 if (m_head->m_pkthdr.csum_flags & in hn_encap()
3143 if (m_head->m_pkthdr.csum_flags & CSUM_IP) in hn_encap()
3147 if (m_head->m_pkthdr.csum_flags & in hn_encap()
3150 m_head->m_pkthdr.l2hlen + m_head->m_pkthdr.l3hlen); in hn_encap()
3151 } else if (m_head->m_pkthdr.csum_flags & in hn_encap()
3154 m_head->m_pkthdr.l2hlen + m_head->m_pkthdr.l3hlen); in hn_encap()
3184 m_copydata(m_head, 0, m_head->m_pkthdr.len, in hn_encap()
3197 error = hn_txdesc_dmamap_load(txr, txd, &m_head, segs, &nsegs); in hn_encap()
3204 m_freem(m_head); in hn_encap()
3215 *m_head0 = m_head; in hn_encap()
3241 txd->m = m_head; in hn_encap()
3248 txr->hn_stat_size += m_head->m_pkthdr.len; in hn_encap()
3249 if (m_head->m_flags & M_MCAST) in hn_encap()
5704 struct mbuf *m_head; in hn_start_locked() local
5707 m_head = if_dequeue(ifp); in hn_start_locked()
5708 if (m_head == NULL) in hn_start_locked()
5711 if (len > 0 && m_head->m_pkthdr.len > len) { in hn_start_locked()
5717 if_sendq_prepend(ifp, m_head); in hn_start_locked()
5723 if (m_head->m_pkthdr.csum_flags & CSUM_TSO) { in hn_start_locked()
5724 m_head = hn_tso_fixup(m_head); in hn_start_locked()
5725 if (__predict_false(m_head == NULL)) { in hn_start_locked()
5729 } else if (m_head->m_pkthdr.csum_flags & in hn_start_locked()
5731 m_head = hn_set_hlen(m_head); in hn_start_locked()
5732 if (__predict_false(m_head == NULL)) { in hn_start_locked()
5742 if_sendq_prepend(ifp, m_head); in hn_start_locked()
5747 error = hn_encap(ifp, txr, txd, &m_head); in hn_start_locked()
5757 KASSERT(m_head == NULL, in hn_start_locked()
5766 KASSERT(m_head != NULL, ("mbuf was freed")); in hn_start_locked()
5770 if_sendq_prepend(ifp, m_head); in hn_start_locked()
5781 KASSERT(m_head == NULL, in hn_start_locked()
5866 struct mbuf *m_head; in hn_xmit() local
5882 while ((m_head = drbr_peek(ifp, txr->hn_mbuf_br)) != NULL) { in hn_xmit()
5886 if (len > 0 && m_head->m_pkthdr.len > len) { in hn_xmit()
5892 drbr_putback(ifp, txr->hn_mbuf_br, m_head); in hn_xmit()
5900 drbr_putback(ifp, txr->hn_mbuf_br, m_head); in hn_xmit()
5905 error = hn_encap(ifp, txr, txd, &m_head); in hn_xmit()
5916 KASSERT(m_head == NULL, in hn_xmit()
5924 KASSERT(m_head != NULL, ("mbuf was freed")); in hn_xmit()
5929 m_head); in hn_xmit()
5939 KASSERT(m_head == NULL, in hn_xmit()