Lines Matching refs:icmp6

58 #include <netinet/icmp6.h>
623 struct icmp6_hdr *icmp6;
638 if (m->m_len < len + sizeof(*icmp6)) {
642 icmp6 = mtodo(m, len);
643 if (icmp6->icmp6_type < ICMP6_ECHO_REQUEST ||
644 icmp6->icmp6_type == ND_REDIRECT) {
698 icmp6 = mtodo(n, sizeof(struct ip6_hdr));
699 icmp6->icmp6_cksum = 0;
700 icmp6->icmp6_type = type;
701 icmp6->icmp6_code = code;
702 icmp6->icmp6_mtu = htonl(mtu);
706 icmp6->icmp6_cksum = in6_cksum(n, IPPROTO_ICMPV6,
821 nat64_icmp_handle_echo(struct ip6_hdr *ip6, struct icmp6_hdr *icmp6,
826 old = *(uint16_t *)icmp6; /* save type+code in one word */
827 icmp6->icmp6_type = type;
829 icmp6->icmp6_cksum = cksum_adjust(icmp6->icmp6_cksum,
830 old, *(uint16_t *)icmp6);
832 old = icmp6->icmp6_id;
833 icmp6->icmp6_id = id;
835 icmp6->icmp6_cksum = cksum_adjust(icmp6->icmp6_cksum,
839 icmp6->icmp6_cksum = ~in6_cksum_pseudo(ip6, ntohs(ip6->ip6_plen),
840 IPPROTO_ICMPV6, ~icmp6->icmp6_cksum);
1287 struct icmp6_hdr *icmp6;
1313 icmp6 = mtodo(m, hlen);
1315 switch (icmp6->icmp6_type) {
1318 switch (icmp6->icmp6_code) {
1332 " code %d", icmp6->icmp6_type,
1333 icmp6->icmp6_code);
1341 mtu = ntohl(icmp6->icmp6_mtu);
1344 " code %d", mtu, icmp6->icmp6_type,
1345 icmp6->icmp6_code);
1357 code = icmp6->icmp6_code;
1360 switch (icmp6->icmp6_code) {
1364 mtu = ntohl(icmp6->icmp6_pptr);
1389 " code %d, pptr %d", icmp6->icmp6_type,
1390 icmp6->icmp6_code, mtu);
1400 " code %d, pptr %d", icmp6->icmp6_type,
1401 icmp6->icmp6_code, ntohl(icmp6->icmp6_pptr));
1408 icmp6->icmp6_type, icmp6->icmp6_code);
1512 struct icmp6_hdr *icmp6;
1592 icmp6 = NULL; /* Make gcc happy */
1594 icmp6 = mtodo(m, hlen);
1595 if (icmp6->icmp6_type != ICMP6_ECHO_REQUEST &&
1596 icmp6->icmp6_type != ICMP6_ECHO_REPLY)
1641 csum = &icmp6->icmp6_cksum;
1645 proto = *(uint16_t *)icmp6; /* save old word for cksum_adjust */
1646 if (icmp6->icmp6_type == ICMP6_ECHO_REQUEST)
1647 icmp6->icmp6_type = ICMP_ECHO;
1649 icmp6->icmp6_type = ICMP_ECHOREPLY;
1651 *(uint16_t *)icmp6);
1653 uint16_t old_id = icmp6->icmp6_id;
1654 icmp6->icmp6_id = aport;