Lines Matching refs:pbuf
487 nat464_translate_icmp_ip(pbuf_t *pbuf, uint16_t off, uint16_t *tot_len, uint16_t *off2, in nat464_translate_icmp_ip() argument
495 uint64_t ipid_salt = (uint64_t)pbuf_get_packet_buffer_address(pbuf); in nat464_translate_icmp_ip()
508 hdr = pbuf_resize_segment(pbuf, off, olen, hlen); in nat464_translate_icmp_ip()
531 ip4->ip_sum = pbuf_inet_cksum(pbuf, 0, 0, ip4->ip_hl << 2); in nat464_translate_icmp_ip()
590 nat464_insert_frag46(pbuf_t *pbuf, uint16_t ip_id_val, uint16_t frag_offset, in nat464_insert_frag46() argument
597 if (pbuf_resize_segment(pbuf, sizeof(struct ip6_hdr), 0, in nat464_insert_frag46()
602 p_ip6h = mtod(pbuf->pb_mbuf, struct ip6_hdr *); in nat464_insert_frag46()
603 p_ip6_frag = (struct ip6_frag *)pbuf_contig_segment(pbuf, in nat464_insert_frag46()
629 nat464_translate_64(pbuf_t *pbuf, int off, uint8_t tos, in nat464_translate_64() argument
647 if (pbuf->pb_ifp == NULL) { in nat464_translate_64()
652 p_frag6 = (struct ip6_frag *)pbuf_contig_segment(pbuf, in nat464_translate_64()
670 ip4 = (struct ip *)pbuf_resize_segment(pbuf, 0, off, sizeof(*ip4)); in nat464_translate_64()
706 ip4->ip_sum = pbuf_inet_cksum(pbuf, 0, 0, ip4->ip_hl << 2); in nat464_translate_64()
734 nat464_translate_46(pbuf_t *pbuf, uint16_t off, uint8_t tos, in nat464_translate_46() argument
740 if (pbuf->pb_ifp == NULL) { in nat464_translate_46()
748 ip6 = (struct ip6_hdr *)pbuf_resize_segment(pbuf, 0, off, sizeof(*ip6)); in nat464_translate_46()
784 nat464_translate_proto(pbuf_t *pbuf, struct nat464_addr *osrc, in nat464_translate_proto() argument
807 iph = pbuf->pb_data; in nat464_translate_proto()
817 ip6h = pbuf->pb_data; in nat464_translate_proto()
860 iph->ip_sum = pbuf_inet_cksum(pbuf, 0, 0, hlen); in nat464_translate_proto()
867 struct udphdr *uh = (struct udphdr *)pbuf_contig_segment(pbuf, hlen, in nat464_translate_proto()
874 if (!(*pbuf->pb_csum_flags & (CSUM_UDP | CSUM_PARTIAL)) && in nat464_translate_proto()
876 uh->uh_sum = pbuf_inet6_cksum(pbuf, IPPROTO_UDP, in nat464_translate_proto()
888 struct tcphdr *th = (struct tcphdr *)pbuf_contig_segment(pbuf, hlen, in nat464_translate_proto()
915 (*pbuf->pb_csum_flags & CSUM_PARTIAL)) { in nat464_translate_proto()
935 icmph = (struct icmp*) pbuf_contig_segment(pbuf, hlen, in nat464_translate_proto()
948 pbuf_copy_back(pbuf, hlen, sizeof(struct icmp6_hdr), in nat464_translate_proto()
955 iph2 = (struct ip*) pbuf_contig_segment(pbuf, ip2off, in nat464_translate_proto()
966 if (nat464_translate_icmp_ip(pbuf, ip2off, &tot_len, in nat464_translate_proto()
985 icmp6h->icmp6_cksum = pbuf_inet6_cksum(pbuf, IPPROTO_ICMPV6, hlen, in nat464_translate_proto()
1005 icmp6h = (struct icmp6_hdr*) pbuf_contig_segment(pbuf, hlen, in nat464_translate_proto()
1018 pbuf_copy_back(pbuf, hlen, ICMP_MINLEN, in nat464_translate_proto()
1025 iph2 = (struct ip6_hdr*) pbuf_contig_segment(pbuf, ip2off, in nat464_translate_proto()
1035 if (nat464_translate_icmp_ip(pbuf, ip2off, &tot_len, in nat464_translate_proto()
1055 iph->ip_sum = pbuf_inet_cksum(pbuf, 0, 0, iph->ip_hl << 2); in nat464_translate_proto()
1057 icmph->icmp_cksum = pbuf_inet_cksum(pbuf, 0, hlen, in nat464_translate_proto()
1096 if ((*pbuf->pb_csum_flags & (CSUM_DATA_VALID | CSUM_PARTIAL)) == in nat464_translate_proto()
1098 (pbuf->pb_mbuf)->m_pkthdr.csum_tx_start += CLAT46_HDR_EXPANSION_OVERHD; in nat464_translate_proto()
1099 (pbuf->pb_mbuf)->m_pkthdr.csum_tx_stuff += CLAT46_HDR_EXPANSION_OVERHD; in nat464_translate_proto()
1102 if (*pbuf->pb_csum_flags & CSUM_TCP) { in nat464_translate_proto()
1103 *pbuf->pb_csum_flags |= CSUM_TCPIPV6; in nat464_translate_proto()
1105 if (*pbuf->pb_csum_flags & CSUM_UDP) { in nat464_translate_proto()
1106 *pbuf->pb_csum_flags |= CSUM_UDPIPV6; in nat464_translate_proto()
1108 if (*pbuf->pb_csum_flags & CSUM_FRAGMENT) { in nat464_translate_proto()
1109 *pbuf->pb_csum_flags |= CSUM_FRAGMENT_IPV6; in nat464_translate_proto()
1113 *pbuf->pb_csum_flags &= ~(CSUM_IP | CSUM_IP_FRAGS | CSUM_DELAY_DATA | CSUM_FRAGMENT); in nat464_translate_proto()
1119 if (*pbuf->pb_csum_flags & CSUM_TSO_IPV4) { in nat464_translate_proto()
1120 *pbuf->pb_csum_flags &= ~CSUM_TSO_IPV4; in nat464_translate_proto()
1121 *pbuf->pb_csum_flags |= CSUM_TSO_IPV6; in nat464_translate_proto()
1125 *pbuf->pb_csum_flags = 0; /* Reset all flags for now */ in nat464_translate_proto()
1128 if (*pbuf->pb_csum_flags & CSUM_PARTIAL) { in nat464_translate_proto()
1129 (pbuf->pb_mbuf)->m_pkthdr.csum_rx_start -= CLAT46_HDR_EXPANSION_OVERHD; in nat464_translate_proto()