Lines Matching refs:ip6
335 parseipv6(char **cpp, ip6_t *ip6, char **ifn, int *out) in parseipv6() argument
340 bzero((char *)ip6, MAX(sizeof(*tcp), sizeof(*ic6)) + sizeof(*ip6)); in parseipv6()
343 ip6->ip6_vfc = 0x60; in parseipv6()
360 ip6->ip6_nxt = IPPROTO_TCP; in parseipv6()
364 ip6->ip6_nxt = IPPROTO_UDP; in parseipv6()
368 ip6->ip6_nxt = IPPROTO_ICMPV6; in parseipv6()
372 ip6->ip6_nxt = atoi(*cpp); in parseipv6()
375 ip6->ip6_nxt = IPPROTO_IPV6; in parseipv6()
380 switch (ip6->ip6_nxt) in parseipv6()
383 ip6->ip6_plen = sizeof(struct tcphdr); in parseipv6()
386 ip6->ip6_plen = sizeof(struct udphdr); in parseipv6()
389 ip6->ip6_plen = ICMP6ERR_IPICMPHLEN; in parseipv6()
395 if (ip6->ip6_nxt == IPPROTO_TCP || ip6->ip6_nxt == IPPROTO_UDP) { in parseipv6()
405 if (ip6->ip6_nxt == IPPROTO_TCP) { in parseipv6()
411 if (inet_pton(AF_INET6, *cpp, &ip6->ip6_src) != 1) { in parseipv6()
420 if (ip6->ip6_nxt == IPPROTO_TCP || ip6->ip6_nxt == IPPROTO_UDP) { in parseipv6()
432 if (inet_pton(AF_INET6, *cpp, &ip6->ip6_dst) != 1) { in parseipv6()
439 if (ip6->ip6_nxt == IPPROTO_TCP) { in parseipv6()
463 } else if (*cpp && ip6->ip6_nxt == IPPROTO_ICMPV6) { in parseipv6()
482 if (ip6->ip6_nxt == IPPROTO_TCP || ip6->ip6_nxt == IPPROTO_UDP) { in parseipv6()
483 bcopy((char *)tcp, (char *)ip6 + sizeof(*ip6), in parseipv6()
485 } else if (ip6->ip6_nxt == IPPROTO_ICMPV6) { in parseipv6()
486 bcopy((char *)ic6, (char *)ip6 + sizeof(*ip6), in parseipv6()
493 if (ip6->ip6_plen == 0) { in parseipv6()
494 ip6->ip6_plen++; in parseipv6()
496 ip6->ip6_plen = htons(ip6->ip6_plen); in parseipv6()