diff --git a/include/net/net_pkt.h b/include/net/net_pkt.h index 51d59516020..3d285404609 100644 --- a/include/net/net_pkt.h +++ b/include/net/net_pkt.h @@ -82,8 +82,8 @@ struct net_pkt { #if defined(CONFIG_NET_IPV6) uint8_t ipv6_hop_limit; /* IPv6 hop limit for this network packet. */ - uint8_t ext_len; /* length of extension headers */ - uint8_t ext_opt_len; /* IPv6 ND option length */ + uint8_t ipv6_ext_len; /* length of extension headers */ + uint8_t ipv6_ext_opt_len; /* IPv6 ND option length */ /* Where is the start of the last header before payload data * in IPv6 packet. This is offset value from start of the IPv6 @@ -215,24 +215,25 @@ static inline bool net_pkt_forwarding(struct net_pkt *pkt) #endif #if defined(CONFIG_NET_IPV6) -static inline uint8_t net_pkt_ext_opt_len(struct net_pkt *pkt) +static inline uint8_t net_pkt_ipv6_ext_opt_len(struct net_pkt *pkt) { - return pkt->ext_opt_len; + return pkt->ipv6_ext_opt_len; } -static inline void net_pkt_set_ext_opt_len(struct net_pkt *pkt, uint8_t len) +static inline void net_pkt_set_ipv6_ext_opt_len(struct net_pkt *pkt, + uint8_t len) { - pkt->ext_opt_len = len; + pkt->ipv6_ext_opt_len = len; } -static inline uint8_t net_pkt_ext_len(struct net_pkt *pkt) +static inline uint8_t net_pkt_ipv6_ext_len(struct net_pkt *pkt) { - return pkt->ext_len; + return pkt->ipv6_ext_len; } -static inline void net_pkt_set_ext_len(struct net_pkt *pkt, uint8_t len) +static inline void net_pkt_set_ipv6_ext_len(struct net_pkt *pkt, uint8_t len) { - pkt->ext_len = len; + pkt->ipv6_ext_len = len; } static inline uint16_t net_pkt_ipv6_hdr_prev(struct net_pkt *pkt) @@ -292,8 +293,8 @@ static inline void net_pkt_set_ipv6_fragment_id(struct net_pkt *pkt, } #endif /* CONFIG_NET_IPV6_FRAGMENT */ #else /* CONFIG_NET_IPV6 */ -#define net_pkt_ext_len(...) 0 -#define net_pkt_set_ext_len(...) +#define net_pkt_ipv6_ext_len(...) 0 +#define net_pkt_set_ipv6_ext_len(...) #endif /* CONFIG_NET_IPV6 */ static inline size_t net_pkt_get_len(struct net_pkt *pkt) @@ -309,19 +310,19 @@ static inline uint8_t *net_pkt_ip_data(struct net_pkt *pkt) static inline uint8_t *net_pkt_udp_data(struct net_pkt *pkt) { return &pkt->frags->data[net_pkt_ip_hdr_len(pkt) + - net_pkt_ext_len(pkt)]; + net_pkt_ipv6_ext_len(pkt)]; } static inline uint8_t *net_pkt_tcp_data(struct net_pkt *pkt) { return &pkt->frags->data[net_pkt_ip_hdr_len(pkt) + - net_pkt_ext_len(pkt)]; + net_pkt_ipv6_ext_len(pkt)]; } static inline uint8_t *net_pkt_icmp_data(struct net_pkt *pkt) { return &pkt->frags->data[net_pkt_ip_hdr_len(pkt) + - net_pkt_ext_len(pkt)]; + net_pkt_ipv6_ext_len(pkt)]; } static inline uint8_t *net_pkt_appdata(struct net_pkt *pkt) diff --git a/subsys/net/ip/icmpv6.c b/subsys/net/ip/icmpv6.c index 899cf40ebd5..ba22e278229 100644 --- a/subsys/net/ip/icmpv6.c +++ b/subsys/net/ip/icmpv6.c @@ -154,10 +154,10 @@ static enum net_verdict handle_echo_request(struct net_pkt *orig) net_pkt_set_ll_reserve(pkt, net_buf_headroom(frag)); net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); - if (net_pkt_ext_len(orig)) { - net_pkt_set_ext_len(pkt, net_pkt_ext_len(orig)); + if (net_pkt_ipv6_ext_len(orig)) { + net_pkt_set_ipv6_ext_len(pkt, net_pkt_ipv6_ext_len(orig)); } else { - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); } /* Set up IPv6 Header fields */ @@ -291,7 +291,7 @@ int net_icmpv6_send_error(struct net_pkt *orig, uint8_t type, uint8_t code, net_pkt_set_family(pkt, AF_INET6); net_pkt_set_iface(pkt, iface); net_pkt_set_ll_reserve(pkt, net_buf_headroom(frag)); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); setup_ipv6_header(pkt, extra_len, net_if_ipv6_get_hop_limit(iface), type, code); diff --git a/subsys/net/ip/icmpv6.h b/subsys/net/ip/icmpv6.h index a846d0132c4..2e6c3049d50 100644 --- a/subsys/net/ip/icmpv6.h +++ b/subsys/net/ip/icmpv6.h @@ -82,7 +82,7 @@ struct net_icmpv6_nd_opt_6co { #define NET_ICMPV6_ND_OPT_HDR_HDR(pkt) \ ((struct net_icmpv6_nd_opt_hdr *)(net_pkt_icmp_data(pkt) + \ sizeof(struct net_icmp_hdr) + \ - net_pkt_ext_opt_len(pkt))) + net_pkt_ipv6_ext_opt_len(pkt))) #define NET_ICMPV6_NA_HDR(pkt) \ ((struct net_icmpv6_na_hdr *)(net_pkt_icmp_data(pkt) + \ diff --git a/subsys/net/ip/ipv6.c b/subsys/net/ip/ipv6.c index 5320e9d6e7d..95001661be2 100644 --- a/subsys/net/ip/ipv6.c +++ b/subsys/net/ip/ipv6.c @@ -597,7 +597,7 @@ struct net_pkt *net_ipv6_create_raw(struct net_pkt *pkt, net_ipaddr_copy(&NET_IPV6_HDR(pkt)->dst, dst); net_ipaddr_copy(&NET_IPV6_HDR(pkt)->src, src); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); NET_IPV6_HDR(pkt)->nexthdr = next_header; net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); @@ -1083,7 +1083,7 @@ int net_ipv6_send_na(struct net_if *iface, struct in6_addr *src, llao_len = get_llao_len(iface); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); setup_headers(pkt, sizeof(struct net_icmpv6_na_hdr) + llao_len, NET_ICMPV6_NA); @@ -1155,7 +1155,7 @@ static enum net_verdict handle_ns_input(struct net_pkt *pkt) goto drop; } - net_pkt_set_ext_opt_len(pkt, sizeof(struct net_icmpv6_ns_hdr)); + net_pkt_set_ipv6_ext_opt_len(pkt, sizeof(struct net_icmpv6_ns_hdr)); hdr = NET_ICMPV6_ND_OPT_HDR_HDR(pkt); /* The parsing gets tricky if the ND struct is split @@ -1169,7 +1169,7 @@ static enum net_verdict handle_ns_input(struct net_pkt *pkt) left_len = pkt->frags->len - (sizeof(struct net_ipv6_hdr) + sizeof(struct net_icmp_hdr)); - while (net_pkt_ext_opt_len(pkt) < left_len && + while (net_pkt_ipv6_ext_opt_len(pkt) < left_len && left_len < pkt->frags->len) { if (!hdr->len) { @@ -1191,12 +1191,13 @@ static enum net_verdict handle_ns_input(struct net_pkt *pkt) break; } - prev_opt_len = net_pkt_ext_opt_len(pkt); + prev_opt_len = net_pkt_ipv6_ext_opt_len(pkt); - net_pkt_set_ext_opt_len(pkt, net_pkt_ext_opt_len(pkt) + - (hdr->len << 3)); + net_pkt_set_ipv6_ext_opt_len(pkt, + net_pkt_ipv6_ext_opt_len(pkt) + + (hdr->len << 3)); - if (prev_opt_len == net_pkt_ext_opt_len(pkt)) { + if (prev_opt_len == net_pkt_ipv6_ext_opt_len(pkt)) { NET_ERR("Corrupted NS message"); goto drop; } @@ -1597,7 +1598,7 @@ static enum net_verdict handle_na_input(struct net_pkt *pkt) goto drop; } - net_pkt_set_ext_opt_len(pkt, sizeof(struct net_icmpv6_na_hdr)); + net_pkt_set_ipv6_ext_opt_len(pkt, sizeof(struct net_icmpv6_na_hdr)); hdr = NET_ICMPV6_ND_OPT_HDR_HDR(pkt); /* The parsing gets tricky if the ND struct is split @@ -1611,7 +1612,7 @@ static enum net_verdict handle_na_input(struct net_pkt *pkt) left_len = pkt->frags->len - (sizeof(struct net_ipv6_hdr) + sizeof(struct net_icmp_hdr)); - while (net_pkt_ext_opt_len(pkt) < left_len && + while (net_pkt_ipv6_ext_opt_len(pkt) < left_len && left_len < pkt->frags->len) { if (!hdr->len) { @@ -1628,12 +1629,13 @@ static enum net_verdict handle_na_input(struct net_pkt *pkt) break; } - prev_opt_len = net_pkt_ext_opt_len(pkt); + prev_opt_len = net_pkt_ipv6_ext_opt_len(pkt); - net_pkt_set_ext_opt_len(pkt, net_pkt_ext_opt_len(pkt) + - (hdr->len << 3)); + net_pkt_set_ipv6_ext_opt_len(pkt, + net_pkt_ipv6_ext_opt_len(pkt) + + (hdr->len << 3)); - if (prev_opt_len == net_pkt_ext_opt_len(pkt)) { + if (prev_opt_len == net_pkt_ipv6_ext_opt_len(pkt)) { NET_ERR("Corrupted NA message"); goto drop; } @@ -2207,7 +2209,7 @@ static enum net_verdict handle_ra_input(struct net_pkt *pkt) } frag = pkt->frags; - offset = sizeof(struct net_ipv6_hdr) + net_pkt_ext_len(pkt) + + offset = sizeof(struct net_ipv6_hdr) + net_pkt_ipv6_ext_len(pkt) + sizeof(struct net_icmp_hdr); frag = net_frag_read_u8(frag, offset, &offset, &hop_limit); @@ -2453,7 +2455,7 @@ static int send_mldv2_raw(struct net_if *iface, struct net_buf *frags) goto drop; } - net_pkt_set_ext_len(pkt, ROUTER_ALERT_LEN); + net_pkt_set_ipv6_ext_len(pkt, ROUTER_ALERT_LEN); net_pkt_write_be16(pkt, pkt->frags, NET_IPV6H_LEN + ROUTER_ALERT_LEN + 2, @@ -2608,7 +2610,7 @@ static enum net_verdict handle_mld_query(struct net_pkt *pkt) goto drop; } - pkt_len = sizeof(struct net_ipv6_hdr) + net_pkt_ext_len(pkt) + + pkt_len = sizeof(struct net_ipv6_hdr) + net_pkt_ipv6_ext_len(pkt) + sizeof(struct net_icmp_hdr) + (2 + 2 + 16 + 2 + 2) + sizeof(struct in6_addr) * num_src; @@ -2873,11 +2875,11 @@ static void reassemble_packet(struct net_ipv6_reassembly *reass) } /* Fix the total length of the IPv6 packet. */ - len = net_pkt_ext_len(pkt); + len = net_pkt_ipv6_ext_len(pkt); if (len > 0) { NET_DBG("Old pkt %p IPv6 ext len is %d bytes", pkt, len); - net_pkt_set_ext_len(pkt, - len - sizeof(struct net_ipv6_frag_hdr)); + net_pkt_set_ipv6_ext_len(pkt, + len - sizeof(struct net_ipv6_frag_hdr)); } len = net_pkt_get_len(pkt) - sizeof(struct net_ipv6_hdr); @@ -3157,8 +3159,8 @@ static int send_ipv6_fragment(struct net_if *iface, /* Update the extension length metadata so that upper layer checksum * will be calculated properly by net_ipv6_finalize_raw(). */ - ext_len = net_pkt_ext_len(ipv6) + sizeof(struct net_ipv6_frag_hdr); - net_pkt_set_ext_len(ipv6, ext_len); + ext_len = net_pkt_ipv6_ext_len(ipv6) + sizeof(struct net_ipv6_frag_hdr); + net_pkt_set_ipv6_ext_len(ipv6, ext_len); orig_copy = net_buf_clone(orig, FRAG_BUF_WAIT); if (!orig_copy) { @@ -3262,7 +3264,7 @@ int net_ipv6_send_fragmented_pkt(struct net_if *iface, struct net_pkt *pkt, * fragmentation header. */ ret = net_pkt_split(pkt, frag, - net_pkt_ip_hdr_len(pkt) + net_pkt_ext_len(pkt), + net_pkt_ip_hdr_len(pkt) + net_pkt_ipv6_ext_len(pkt), &orig_ipv6, &rest, FRAG_BUF_WAIT); if (ret < 0) { return -ENOMEM; @@ -3556,7 +3558,7 @@ enum net_verdict net_ipv6_process_pkt(struct net_pkt *pkt) /* Check extension headers */ net_pkt_set_next_hdr(pkt, &hdr->nexthdr); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); /* Fast path for main upper layer protocols. The handling of extension @@ -3581,8 +3583,8 @@ enum net_verdict net_ipv6_process_pkt(struct net_pkt *pkt) if (is_upper_layer_protocol_header(next)) { NET_DBG("IPv6 next header %d", next); - net_pkt_set_ext_len(pkt, offset - - sizeof(struct net_ipv6_hdr)); + net_pkt_set_ipv6_ext_len(pkt, offset - + sizeof(struct net_ipv6_hdr)); goto upper_proto; } @@ -3659,7 +3661,7 @@ enum net_verdict net_ipv6_process_pkt(struct net_pkt *pkt) upper_proto: if (total_len > 0) { NET_DBG("Extension len %d", total_len); - net_pkt_set_ext_len(pkt, total_len); + net_pkt_set_ipv6_ext_len(pkt, total_len); } switch (next) { diff --git a/subsys/net/ip/rpl.c b/subsys/net/ip/rpl.c index 21d262531c0..2500edf56bb 100644 --- a/subsys/net/ip/rpl.c +++ b/subsys/net/ip/rpl.c @@ -3783,7 +3783,7 @@ struct net_buf *net_rpl_verify_header(struct net_pkt *pkt, struct net_buf *frag, static inline int add_rpl_opt(struct net_pkt *pkt, uint16_t offset) { - int ext_len = net_pkt_ext_len(pkt); + int ext_len = net_pkt_ipv6_ext_len(pkt); bool ret; /* next header */ @@ -3836,7 +3836,7 @@ static inline int add_rpl_opt(struct net_pkt *pkt, uint16_t offset) NET_IPV6_HDR(pkt)->nexthdr = NET_IPV6_NEXTHDR_HBHO; - net_pkt_set_ext_len(pkt, ext_len + NET_RPL_HOP_BY_HOP_LEN); + net_pkt_set_ipv6_ext_len(pkt, ext_len + NET_RPL_HOP_BY_HOP_LEN); return 0; } diff --git a/subsys/net/ip/utils.c b/subsys/net/ip/utils.c index a1d9ee4cf5f..a3b1fa23fe0 100644 --- a/subsys/net/ip/utils.c +++ b/subsys/net/ip/utils.c @@ -405,7 +405,7 @@ static inline uint16_t calc_chksum_pkt(uint16_t sum, struct net_pkt *pkt, { struct net_buf *frag = pkt->frags; uint16_t proto_len = net_pkt_ip_hdr_len(pkt) + - net_pkt_ext_len(pkt); + net_pkt_ipv6_ext_len(pkt); int16_t len = frag->len - proto_len; uint8_t *ptr = frag->data + proto_len; @@ -453,7 +453,7 @@ uint16_t net_calc_chksum(struct net_pkt *pkt, uint8_t proto) case AF_INET: upper_layer_len = (NET_IPV4_HDR(pkt)->len[0] << 8) + NET_IPV4_HDR(pkt)->len[1] - - net_pkt_ext_len(pkt) - + net_pkt_ipv6_ext_len(pkt) - net_pkt_ip_hdr_len(pkt); if (proto == IPPROTO_ICMP) { @@ -470,7 +470,7 @@ uint16_t net_calc_chksum(struct net_pkt *pkt, uint8_t proto) #if defined(CONFIG_NET_IPV6) case AF_INET6: upper_layer_len = (NET_IPV6_HDR(pkt)->len[0] << 8) + - NET_IPV6_HDR(pkt)->len[1] - net_pkt_ext_len(pkt); + NET_IPV6_HDR(pkt)->len[1] - net_pkt_ipv6_ext_len(pkt); sum = calc_chksum(upper_layer_len + proto, (uint8_t *)&NET_IPV6_HDR(pkt)->src, 2 * sizeof(struct in6_addr)); diff --git a/tests/net/tcp/src/main.c b/tests/net/tcp/src/main.c index 86bf1e750c9..a7a9294db31 100644 --- a/tests/net/tcp/src/main.c +++ b/tests/net/tcp/src/main.c @@ -277,7 +277,7 @@ static void setup_ipv6_tcp(struct net_pkt *pkt, NET_TCP_HDR(pkt)->src_port = htons(remote_port); NET_TCP_HDR(pkt)->dst_port = htons(local_port); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); net_buf_add(pkt->frags, net_pkt_ip_hdr_len(pkt) + sizeof(struct net_tcp_hdr)); @@ -305,7 +305,7 @@ static void setup_ipv4_tcp(struct net_pkt *pkt, NET_TCP_HDR(pkt)->src_port = htons(remote_port); NET_TCP_HDR(pkt)->dst_port = htons(local_port); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); net_buf_add(pkt->frags, net_pkt_ip_hdr_len(pkt) + sizeof(struct net_tcp_hdr)); diff --git a/tests/net/udp/src/main.c b/tests/net/udp/src/main.c index 078c05cb015..1e96b563114 100644 --- a/tests/net/udp/src/main.c +++ b/tests/net/udp/src/main.c @@ -194,7 +194,7 @@ static void setup_ipv6_udp(struct net_pkt *pkt, NET_UDP_HDR(pkt)->src_port = htons(remote_port); NET_UDP_HDR(pkt)->dst_port = htons(local_port); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); net_buf_add(pkt->frags, net_pkt_ip_hdr_len(pkt) + sizeof(struct net_udp_hdr)); @@ -222,7 +222,7 @@ static void setup_ipv4_udp(struct net_pkt *pkt, NET_UDP_HDR(pkt)->src_port = htons(remote_port); NET_UDP_HDR(pkt)->dst_port = htons(local_port); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); net_buf_add(pkt->frags, net_pkt_ip_hdr_len(pkt) + sizeof(struct net_udp_hdr)); diff --git a/tests/net/utils/src/main.c b/tests/net/utils/src/main.c index 359bd5aaa7f..e00c6768df3 100644 --- a/tests/net/utils/src/main.c +++ b/tests/net/utils/src/main.c @@ -168,7 +168,7 @@ static bool run_tests(void) net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); net_pkt_set_family(pkt, AF_INET6); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); /* We need to zero the ICMP checksum */ hdr_len = net_pkt_ip_hdr_len(pkt); @@ -192,7 +192,7 @@ static bool run_tests(void) net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); net_pkt_set_family(pkt, AF_INET6); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); hdr_len = net_pkt_ip_hdr_len(pkt); orig_chksum = (frag->data[hdr_len + 2] << 8) + frag->data[hdr_len + 3]; @@ -221,7 +221,7 @@ static bool run_tests(void) net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); net_pkt_set_family(pkt, AF_INET6); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); hdr_len = net_pkt_ip_hdr_len(pkt); orig_chksum = (frag->data[hdr_len + 2] << 8) + frag->data[hdr_len + 3]; @@ -253,7 +253,7 @@ static bool run_tests(void) net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv6_hdr)); net_pkt_set_family(pkt, AF_INET6); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); chunk = 29; datalen = sizeof(pkt3) - sizeof(struct net_ipv6_hdr); @@ -321,7 +321,7 @@ static bool run_tests(void) net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv4_hdr)); net_pkt_set_family(pkt, AF_INET); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); hdr_len = net_pkt_ip_hdr_len(pkt); orig_chksum = (frag->data[hdr_len + 2] << 8) + frag->data[hdr_len + 3]; @@ -350,7 +350,7 @@ static bool run_tests(void) net_pkt_set_ip_hdr_len(pkt, sizeof(struct net_ipv4_hdr)); net_pkt_set_family(pkt, AF_INET); - net_pkt_set_ext_len(pkt, 0); + net_pkt_set_ipv6_ext_len(pkt, 0); hdr_len = net_pkt_ip_hdr_len(pkt); orig_chksum = (frag->data[hdr_len + 2] << 8) + frag->data[hdr_len + 3];