diff options
author | Jordan Augé <jordan.auge+fdio@cisco.com> | 2022-09-21 17:11:22 +0200 |
---|---|---|
committer | Jordan Augé <jordan.auge+fdio@cisco.com> | 2022-09-30 09:17:13 +0200 |
commit | 3476dd9ddecc87d9212c3bf56a5be52079e27def (patch) | |
tree | 3c7ea2664e8f99fc4fd4588b9e4493f0dc9bbb93 /lib/src/protocol | |
parent | 29647f687c8dadc90e2ba4d3a772eee09a1a4f1b (diff) |
feat: support for new packet format in hicn-light
Ref: HICN-792
Change-Id: I3204006bd2dd2be6504c33035c6578ec0292455a
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'lib/src/protocol')
-rw-r--r-- | lib/src/protocol/ah.c | 6 | ||||
-rw-r--r-- | lib/src/protocol/icmp.c | 6 | ||||
-rw-r--r-- | lib/src/protocol/ipv4.c | 46 | ||||
-rw-r--r-- | lib/src/protocol/ipv6.c | 47 | ||||
-rw-r--r-- | lib/src/protocol/new.c | 14 | ||||
-rw-r--r-- | lib/src/protocol/tcp.c | 37 | ||||
-rw-r--r-- | lib/src/protocol/udp.c | 38 |
7 files changed, 9 insertions, 185 deletions
diff --git a/lib/src/protocol/ah.c b/lib/src/protocol/ah.c index 645b0482b..ea028d559 100644 --- a/lib/src/protocol/ah.c +++ b/lib/src/protocol/ah.c @@ -50,12 +50,6 @@ DECLARE_get_payload_type (ah, UNEXPECTED); DECLARE_set_payload_type (ah, UNEXPECTED); DECLARE_is_last_data (ah, UNEXPECTED); DECLARE_set_last_data (ah, UNEXPECTED); -DECLARE_get_ttl (ah, UNEXPECTED); -DECLARE_set_ttl (ah, UNEXPECTED); -DECLARE_get_src_port (ah, UNEXPECTED); -DECLARE_set_src_port (ah, UNEXPECTED); -DECLARE_get_dst_port (ah, UNEXPECTED); -DECLARE_set_dst_port (ah, UNEXPECTED); int ah_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) diff --git a/lib/src/protocol/icmp.c b/lib/src/protocol/icmp.c index 71417a4e0..5ee70f088 100644 --- a/lib/src/protocol/icmp.c +++ b/lib/src/protocol/icmp.c @@ -44,12 +44,6 @@ DECLARE_get_signature (icmp, UNEXPECTED); DECLARE_has_signature (icmp, UNEXPECTED); DECLARE_is_last_data (icmp, UNEXPECTED); DECLARE_set_last_data (icmp, UNEXPECTED); -DECLARE_get_ttl (icmp, UNEXPECTED); -DECLARE_set_ttl (icmp, UNEXPECTED); -DECLARE_get_src_port (icmp, UNEXPECTED); -DECLARE_set_src_port (icmp, UNEXPECTED); -DECLARE_get_dst_port (icmp, UNEXPECTED); -DECLARE_set_dst_port (icmp, UNEXPECTED); int icmp_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) diff --git a/lib/src/protocol/ipv4.c b/lib/src/protocol/ipv4.c index a13728d04..daa5a706a 100644 --- a/lib/src/protocol/ipv4.c +++ b/lib/src/protocol/ipv4.c @@ -60,7 +60,7 @@ ipv4_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) .id = htons (IPV4_DEFAULT_ID), .frag_off = htons (IPV4_DEFAULT_FRAG_OFF), .ttl = HICN_DEFAULT_TTL, - .protocol = format.as_u8[pos + 1], + .protocol = HICN_PACKET_FORMAT_GET (format, pos + 1), .csum = 0, .saddr.as_u32 = 0, .daddr.as_u32 = 0, @@ -530,50 +530,6 @@ ipv4_set_last_data (const hicn_packet_buffer_t *pkbuf, size_t pos) return CALL_CHILD (set_last_data, pkbuf, pos); } -int -ipv4_get_ttl (const hicn_packet_buffer_t *pkbuf, size_t pos, u8 *hops) -{ - _ipv4_header_t *ipv4 = pkbuf_get_ipv4 (pkbuf); - - *hops = ipv4->ttl; - - return HICN_LIB_ERROR_NONE; -} - -int -ipv4_set_ttl (const hicn_packet_buffer_t *pkbuf, size_t pos, u8 hops) -{ - _ipv4_header_t *ipv4 = pkbuf_get_ipv4 (pkbuf); - - ipv4->ttl = hops; - - return HICN_LIB_ERROR_NONE; -} - -int -ipv4_get_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - return CALL_CHILD (get_src_port, pkbuf, pos, port); -} - -int -ipv4_set_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - return CALL_CHILD (set_src_port, pkbuf, pos, port); -} - -int -ipv4_get_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - return CALL_CHILD (get_dst_port, pkbuf, pos, port); -} - -int -ipv4_set_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - return CALL_CHILD (set_dst_port, pkbuf, pos, port); -} - DECLARE_HICN_OPS (ipv4, IPV4_HDRLEN); /* diff --git a/lib/src/protocol/ipv6.c b/lib/src/protocol/ipv6.c index aec521afc..c5fa643aa 100644 --- a/lib/src/protocol/ipv6.c +++ b/lib/src/protocol/ipv6.c @@ -53,7 +53,7 @@ ipv6_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) (IPV6_DEFAULT_TRAFFIC_CLASS << 20) | (IPV6_DEFAULT_FLOW_LABEL & 0xfffff)), .len = htons(header_len - IPV6_HDRLEN), - .nxt = format.as_u8[pos + 1], + .nxt = HICN_PACKET_FORMAT_GET(format, pos+1), .hlim = HICN_DEFAULT_TTL, }; /* clang-format on */ @@ -468,51 +468,6 @@ ipv6_set_last_data (const hicn_packet_buffer_t *pkbuf, size_t pos) return CALL_CHILD (set_last_data, pkbuf, pos); } -int -ipv6_get_ttl (const hicn_packet_buffer_t *pkbuf, size_t pos, u8 *hops) -{ - _ipv6_header_t *ipv6 = pkbuf_get_ipv6 (pkbuf); - - *hops = ipv6->hlim; - - return HICN_LIB_ERROR_NONE; -} - -int -ipv6_set_ttl (const hicn_packet_buffer_t *pkbuf, size_t pos, u8 hops) -{ - - _ipv6_header_t *ipv6 = pkbuf_get_ipv6 (pkbuf); - - ipv6->hlim = hops; - - return HICN_LIB_ERROR_NONE; -} - -int -ipv6_get_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - return CALL_CHILD (get_src_port, pkbuf, pos, port); -} - -int -ipv6_set_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - return CALL_CHILD (set_src_port, pkbuf, pos, port); -} - -int -ipv6_get_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - return CALL_CHILD (get_dst_port, pkbuf, pos, port); -} - -int -ipv6_set_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - return CALL_CHILD (set_dst_port, pkbuf, pos, port); -} - DECLARE_HICN_OPS (ipv6, IPV6_HDRLEN); /* diff --git a/lib/src/protocol/new.c b/lib/src/protocol/new.c index 5308e8c0a..e86ce4753 100644 --- a/lib/src/protocol/new.c +++ b/lib/src/protocol/new.c @@ -24,13 +24,6 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" -DECLARE_get_ttl (new, UNEXPECTED); -DECLARE_set_ttl (new, UNEXPECTED); -DECLARE_get_src_port (new, UNEXPECTED); -DECLARE_set_src_port (new, UNEXPECTED); -DECLARE_get_dst_port (new, UNEXPECTED); -DECLARE_set_dst_port (new, UNEXPECTED); - int new_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) { @@ -45,8 +38,9 @@ new_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) memset (new, 0, sizeof (_new_header_t)); _set_new_header_version (new); - uint8_t ah_flag = - format.as_u8[pos + 1] == IPPROTO_AH ? HICN_NEW_FLAG_SIG : 0; + uint8_t ah_flag = (HICN_PACKET_FORMAT_GET (format, pos + 1) == IPPROTO_AH) ? + HICN_NEW_FLAG_SIG : + 0; new->flags |= ah_flag; return CALL_CHILD (init_packet_header, pkbuf, pos); @@ -128,6 +122,8 @@ new_get_interest_name (const hicn_packet_buffer_t *pkbuf, size_t pos, return HICN_LIB_ERROR_NONE; } +// XXX never called and thus packet is never initialized as interest +// DECLARE_set_interest_name (udp, UNEXPECTED); int new_set_interest_name (const hicn_packet_buffer_t *pkbuf, size_t pos, const hicn_name_t *name) diff --git a/lib/src/protocol/tcp.c b/lib/src/protocol/tcp.c index 822bd3e0c..e09495ecd 100644 --- a/lib/src/protocol/tcp.c +++ b/lib/src/protocol/tcp.c @@ -46,8 +46,6 @@ DECLARE_set_data_locator (tcp, UNEXPECTED); DECLARE_get_data_name (tcp, UNEXPECTED); DECLARE_set_data_name (tcp, UNEXPECTED); DECLARE_set_payload_len (tcp, UNEXPECTED); -DECLARE_get_ttl (tcp, UNEXPECTED); -DECLARE_set_ttl (tcp, UNEXPECTED); int tcp_update_checksums_incremental (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *old_val, u16 *new_val, @@ -115,7 +113,8 @@ tcp_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) .urg_ptr = 65000, }; - uint8_t ah_flag = ((format.as_u8[pos + 1] == IPPROTO_AH) ? AH_FLAG : 0); + uint8_t ah_flag = + (HICN_PACKET_FORMAT_GET (format, pos + 1) == IPPROTO_AH) ? AH_FLAG : 0; tcp->flags |= ah_flag; @@ -590,38 +589,6 @@ tcp_set_last_data (const hicn_packet_buffer_t *pkbuf, size_t pos) return HICN_LIB_ERROR_NONE; } -int -tcp_get_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - _tcp_header_t *tcp = pkbuf_get_tcp (pkbuf); - *port = ntohs (tcp->sport); - return HICN_LIB_ERROR_NONE; -} - -int -tcp_set_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - _tcp_header_t *tcp = pkbuf_get_tcp (pkbuf); - tcp->sport = htons (port); - return HICN_LIB_ERROR_NONE; -} - -int -tcp_get_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - _tcp_header_t *tcp = pkbuf_get_tcp (pkbuf); - *port = ntohs (tcp->dport); - return HICN_LIB_ERROR_NONE; -} - -int -tcp_set_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - _tcp_header_t *tcp = pkbuf_get_tcp (pkbuf); - tcp->dport = htons (port); - return HICN_LIB_ERROR_NONE; -} - DECLARE_HICN_OPS (tcp, TCP_HDRLEN); /* diff --git a/lib/src/protocol/udp.c b/lib/src/protocol/udp.c index ff2355b0c..56de0065f 100644 --- a/lib/src/protocol/udp.c +++ b/lib/src/protocol/udp.c @@ -30,8 +30,6 @@ DECLARE_set_data_locator (udp, UNEXPECTED); DECLARE_get_data_name (udp, UNEXPECTED); DECLARE_set_data_name (udp, UNEXPECTED); DECLARE_set_payload_len (udp, UNEXPECTED); -DECLARE_get_ttl (udp, UNEXPECTED); -DECLARE_set_ttl (udp, UNEXPECTED); int udp_init_packet_header (hicn_packet_buffer_t *pkbuf, size_t pos) @@ -299,42 +297,6 @@ udp_set_last_data (const hicn_packet_buffer_t *pkbuf, size_t pos) return CALL_CHILD (set_last_data, pkbuf, pos); } -int -udp_get_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - _udp_header_t *udp = pkbuf_get_udp (pkbuf); - - *port = udp->src_port; - return HICN_LIB_ERROR_NONE; -} - -int -udp_set_src_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - _udp_header_t *udp = pkbuf_get_udp (pkbuf); - - udp->src_port = port; - return HICN_LIB_ERROR_NONE; -} - -int -udp_get_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 *port) -{ - _udp_header_t *udp = pkbuf_get_udp (pkbuf); - - *port = udp->dst_port; - return HICN_LIB_ERROR_NONE; -} - -int -udp_set_dst_port (const hicn_packet_buffer_t *pkbuf, size_t pos, u16 port) -{ - _udp_header_t *udp = pkbuf_get_udp (pkbuf); - - udp->dst_port = port; - return HICN_LIB_ERROR_NONE; -} - DECLARE_HICN_OPS (udp, UDP_HDRLEN); /* |