Lines Matching refs:ipp
108 ip_recv_attr_t *ira, mblk_t *mp, ip_pkt_t *ipp)
138 (ipp->ipp_fields & IPPF_IPV4_OPTIONS)) {
140 ipp->ipp_ipv4_options_len;
189 (ipp->ipp_fields & IPPF_HOPOPTS)) {
190 ancil_size += sizeof (struct T_opthdr) + ipp->ipp_hopoptslen;
199 if (ipp->ipp_fields & IPPF_RTHDRDSTOPTS) {
204 ipp->ipp_rthdrdstoptslen;
209 (ipp->ipp_fields & IPPF_RTHDR)) {
210 ancil_size += sizeof (struct T_opthdr) + ipp->ipp_rthdrlen;
215 (ipp->ipp_fields & IPPF_DSTOPTS)) {
216 ancil_size += sizeof (struct T_opthdr) + ipp->ipp_dstoptslen;
256 ip_recv_attr_t *ira, ip_pkt_t *ipp, uchar_t *ancil_buf, uint_t ancil_size)
274 *dstptr = ipp->ipp_addr_v4;
313 pktinfop->ipi_addr.s_addr = ipp->ipp_addr_v4;
319 (ipp->ipp_fields & IPPF_IPV4_OPTIONS)) {
325 toh->len = sizeof (struct T_opthdr) + ipp->ipp_ipv4_options_len;
328 bcopy(ipp->ipp_ipv4_options, ancil_buf,
329 ipp->ipp_ipv4_options_len);
330 ancil_buf += ipp->ipp_ipv4_options_len;
411 IN6_IPADDR_TO_V4MAPPED(ipp->ipp_addr_v4,
414 pkti->ipi6_addr = ipp->ipp_addr;
430 *(uint_t *)ancil_buf = ipp->ipp_hoplimit;
445 *(uint_t *)ancil_buf = ipp->ipp_type_of_service;
447 *(uint_t *)ancil_buf = ipp->ipp_tclass;
452 (ipp->ipp_fields & IPPF_HOPOPTS)) {
458 toh->len = sizeof (struct T_opthdr) + ipp->ipp_hopoptslen;
461 bcopy(ipp->ipp_hopopts, ancil_buf, ipp->ipp_hopoptslen);
462 ancil_buf += ipp->ipp_hopoptslen;
471 if (ipp->ipp_fields & IPPF_RTHDRDSTOPTS) {
481 ipp->ipp_rthdrdstoptslen;
484 bcopy(ipp->ipp_rthdrdstopts, ancil_buf,
485 ipp->ipp_rthdrdstoptslen);
486 ancil_buf += ipp->ipp_rthdrdstoptslen;
491 (ipp->ipp_fields & IPPF_RTHDR)) {
497 toh->len = sizeof (struct T_opthdr) + ipp->ipp_rthdrlen;
500 bcopy(ipp->ipp_rthdr, ancil_buf, ipp->ipp_rthdrlen);
501 ancil_buf += ipp->ipp_rthdrlen;
506 (ipp->ipp_fields & IPPF_DSTOPTS)) {
512 toh->len = sizeof (struct T_opthdr) + ipp->ipp_dstoptslen;
515 bcopy(ipp->ipp_dstopts, ancil_buf, ipp->ipp_dstoptslen);
516 ancil_buf += ipp->ipp_dstoptslen;
572 *dstptr = ipp->ipp_hoplimit;
593 ip_pkt_t *ipp = coa->coa_ipp;
694 if (!(ipp->ipp_fields & IPPF_IPV4_OPTIONS))
697 len = ipp->ipp_ipv4_options_len;
699 bcopy(ipp->ipp_ipv4_options, ptr, len);
725 if (ipp->ipp_fields & IPPF_ADDR)
726 pktinfo->ipi_spec_dst.s_addr = ipp->ipp_addr_v4;
736 *i1 = (int)ipp->ipp_type_of_service;
739 *i1 = (int)ipp->ipp_unicast_hops;
825 *i1 = (int)ipp->ipp_unicast_hops;
889 if (ipp->ipp_fields & IPPF_ADDR)
890 pkti->ipi6_addr = ipp->ipp_addr;
896 *i1 = ipp->ipp_tclass;
911 if (!(ipp->ipp_fields & IPPF_HOPOPTS))
913 bcopy(ipp->ipp_hopopts, ptr,
914 ipp->ipp_hopoptslen);
915 return (ipp->ipp_hopoptslen);
917 if (!(ipp->ipp_fields & IPPF_RTHDRDSTOPTS))
919 bcopy(ipp->ipp_rthdrdstopts, ptr,
920 ipp->ipp_rthdrdstoptslen);
921 return (ipp->ipp_rthdrdstoptslen);
923 if (!(ipp->ipp_fields & IPPF_RTHDR))
925 bcopy(ipp->ipp_rthdr, ptr, ipp->ipp_rthdrlen);
926 return (ipp->ipp_rthdrlen);
928 if (!(ipp->ipp_fields & IPPF_DSTOPTS))
930 bcopy(ipp->ipp_dstopts, ptr, ipp->ipp_dstoptslen);
931 return (ipp->ipp_dstoptslen);
1179 ip_pkt_t *ipp = coa->coa_ipp;
1234 if (ipp->ipp_fields & IPPF_LABEL_V4)
1235 newlen = inlen + (ipp->ipp_label_len_v4 + 3) & ~3;
1293 (uchar_t **)&ipp->ipp_ipv4_options,
1294 &ipp->ipp_ipv4_options_len);
1299 if (ipp->ipp_ipv4_options_len == 0) {
1300 ipp->ipp_fields &= ~IPPF_IPV4_OPTIONS;
1302 ipp->ipp_fields |= IPPF_IPV4_OPTIONS;
1311 ipp->ipp_unicast_hops = *i1;
1319 ipp->ipp_type_of_service = 0;
1321 ipp->ipp_type_of_service = *i1;
1389 ipp->ipp_fields |= IPPF_ADDR;
1391 &ipp->ipp_addr);
1393 ipp->ipp_fields &= ~IPPF_ADDR;
1394 ipp->ipp_addr = ipv6_all_zeros;
1501 ip_pkt_t *ipp = coa->coa_ipp;
1703 ipp->ipp_unicast_hops = connp->conn_default_ttl;
1705 ipp->ipp_unicast_hops = (uint8_t)*i1;
1808 ipp->ipp_fields &= ~IPPF_ADDR;
1809 ipp->ipp_addr = ipv6_all_zeros;
1815 ipp->ipp_addr = pkti->ipi6_addr;
1816 if (!IN6_IS_ADDR_UNSPECIFIED(&ipp->ipp_addr))
1817 ipp->ipp_fields |= IPPF_ADDR;
1819 ipp->ipp_fields &= ~IPPF_ADDR;
1831 ipp->ipp_fields &= ~IPPF_HOPLIMIT;
1834 ipp->ipp_hoplimit = *i1;
1835 ipp->ipp_fields |= IPPF_HOPLIMIT;
1849 ipp->ipp_tclass = 0;
1850 ipp->ipp_fields &= ~IPPF_TCLASS;
1852 ipp->ipp_tclass = *i1;
1853 ipp->ipp_fields |= IPPF_TCLASS;
1875 (uchar_t **)&ipp->ipp_hopopts, &ipp->ipp_hopoptslen);
1880 if (ipp->ipp_hopoptslen == 0) {
1881 ipp->ipp_fields &= ~IPPF_HOPOPTS;
1883 ipp->ipp_fields |= IPPF_HOPOPTS;
1892 (uchar_t **)&ipp->ipp_rthdrdstopts,
1893 &ipp->ipp_rthdrdstoptslen);
1898 if (ipp->ipp_rthdrdstoptslen == 0) {
1899 ipp->ipp_fields &= ~IPPF_RTHDRDSTOPTS;
1901 ipp->ipp_fields |= IPPF_RTHDRDSTOPTS;
1910 (uchar_t **)&ipp->ipp_dstopts, &ipp->ipp_dstoptslen);
1915 if (ipp->ipp_dstoptslen == 0) {
1916 ipp->ipp_fields &= ~IPPF_DSTOPTS;
1918 ipp->ipp_fields |= IPPF_DSTOPTS;
1927 (uchar_t **)&ipp->ipp_rthdr, &ipp->ipp_rthdrlen);
1932 if (ipp->ipp_rthdrlen == 0) {
1933 ipp->ipp_fields &= ~IPPF_RTHDR;
1935 ipp->ipp_fields |= IPPF_RTHDR;
2189 ip_pkt_t *ipp = &connp->conn_xmit_ipp;
2197 ip_hdr_length = ip_total_hdrs_len_v4(ipp);
2204 ip_hdr_length = ip_total_hdrs_len_v6(ipp);
2236 ip_build_hdrs_v4(hdrs, ip_hdr_length, ipp, connp->conn_proto);
2243 if (ipp->ipp_fields & IPPF_IPV4_OPTIONS) {
2254 ip_build_hdrs_v6(hdrs, ip_hdr_length, ipp, connp->conn_proto,
2258 if (ipp->ipp_fields & IPPF_RTHDR) {
2291 conn_prepend_hdr(ip_xmit_attr_t *ixa, const ip_pkt_t *ipp,
2302 ip_hdr_length = ip_total_hdrs_len_v4(ipp);
2305 ip_hdr_length = ip_total_hdrs_len_v6(ipp);
2341 ip_build_hdrs_v4(hdrs, ip_hdr_length, ipp, protocol);
2348 if (ipp->ipp_fields & IPPF_IPV4_OPTIONS) {
2359 ip_build_hdrs_v6(hdrs, ip_hdr_length, ipp, protocol, flowinfo);
2362 if (ipp->ipp_fields & IPPF_RTHDR) {
2447 ip_attr_nexthop(const ip_pkt_t *ipp, const ip_xmit_attr_t *ixa,
2450 if (!(ipp->ipp_fields & (IPPF_IPV4_OPTIONS|IPPF_RTHDR))) {
2459 v4nexthop = ip_pkt_source_route_v4(ipp);
2467 v6nexthop = ip_pkt_source_route_v6(ipp);
2622 * (and ipp if they are to change the ipp) so we
2753 const in6_addr_t *v6dst, ip_pkt_t *ipp)
2769 (uchar_t **)&ipp->ipp_label_v4,
2770 &ipp->ipp_label_len_v4);
2779 if (ipp->ipp_label_len_v4 != 0)
2780 ipp->ipp_fields |= IPPF_LABEL_V4;
2782 ipp->ipp_fields &= ~IPPF_LABEL_V4;
2802 (uchar_t **)&ipp->ipp_label_v6,
2803 &ipp->ipp_label_len_v6);
2812 if (ipp->ipp_label_len_v6 != 0)
2813 ipp->ipp_fields |= IPPF_LABEL_V6;
2815 ipp->ipp_fields &= ~IPPF_LABEL_V6;