diff options
author | Mauro Sardara <msardara@cisco.com> | 2020-03-24 17:34:14 +0000 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2020-09-14 17:31:15 +0000 |
commit | 88509fe353767cbde707c3e3b1f29392957819f3 (patch) | |
tree | cccd51bac7966cd3138c525e8075d90341184a66 /lib | |
parent | d875ae92a7fa1eaab3bc2616aeeedfc64a81fea4 (diff) |
[HICN-574] Host stack plugin for VPP.
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I8d8fdffef31a7013265d6529c5f52f3d5ec70d18
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Signed-off-by: Mauro <you@example.com>
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/includes/hicn/ops.h | 14 | ||||
-rw-r--r-- | lib/src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | lib/src/ops.c | 1 | ||||
-rw-r--r-- | lib/src/protocol/ah.c | 3 | ||||
-rw-r--r-- | lib/src/protocol/icmp.c | 1 | ||||
-rw-r--r-- | lib/src/protocol/ipv4.c | 6 | ||||
-rw-r--r-- | lib/src/protocol/ipv6.c | 6 | ||||
-rw-r--r-- | lib/src/protocol/tcp.c | 7 |
8 files changed, 39 insertions, 3 deletions
diff --git a/lib/includes/hicn/ops.h b/lib/includes/hicn/ops.h index e8feff92d..bcb73171e 100644 --- a/lib/includes/hicn/ops.h +++ b/lib/includes/hicn/ops.h @@ -122,6 +122,16 @@ typedef struct hicn_ops_s int (*mark_packet_as_data) (hicn_type_t type, hicn_protocol_t * h); /** + * @brief Check if currentpacket is interest + * @param [in] type - hICN packet type + * @param [in,out] h - Buffer holding the Interest packet + * @param [out] ret - Return 1 if interest + * @return hICN error code + */ + int (*test_packet_is_interest) (hicn_type_t type, hicn_protocol_t * h, + u8 *ret); + + /** * @brief Clear the necessary Interest fields in order to hash it * @param [in] type - hICN packet type * @param [in,out] h - Buffer holding the Interest packet @@ -456,6 +466,7 @@ typedef struct hicn_ops_s ATTR_INIT(set_interest_name_suffix, protocol ## _set_interest_name_suffix), \ ATTR_INIT(mark_packet_as_interest, protocol ## _mark_packet_as_interest), \ ATTR_INIT(mark_packet_as_data, protocol ## _mark_packet_as_data), \ + ATTR_INIT(test_packet_is_interest, protocol ## _test_packet_is_interest), \ ATTR_INIT(reset_interest_for_hash, protocol ## _reset_interest_for_hash), \ ATTR_INIT(get_data_locator, protocol ## _get_data_locator), \ ATTR_INIT(set_data_locator, protocol ## _set_data_locator), \ @@ -561,6 +572,9 @@ PAYLOAD (hicn_type_t type, const hicn_protocol_t * h) #define DECLARE_mark_packet_as_data(protocol, error) \ int protocol ## _mark_packet_as_data(hicn_type_t type, hicn_protocol_t * h) { return HICN_LIB_ERROR_ ## error ; } +#define DECLARE_test_packet_is_interest(protocol, error) \ + int protocol ## _test_packet_is_interest(hicn_type_t type, hicn_protocol_t * h, u8 *ret) { return HICN_LIB_ERROR_ ## error ; } + #define DECLARE_reset_interest_for_hash(protocol, error) \ int protocol ## _reset_interest_for_hash(hicn_type_t type, hicn_protocol_t * h) { return HICN_LIB_ERROR_ ## error ; } diff --git a/lib/src/CMakeLists.txt b/lib/src/CMakeLists.txt index 7eecaf775..49b735f51 100644 --- a/lib/src/CMakeLists.txt +++ b/lib/src/CMakeLists.txt @@ -42,7 +42,7 @@ if (DISABLE_SHARED_LIBRARIES) COMPONENT lib${LIBHICN} INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../includes DEFINITIONS ${COMPILER_DEFINITIONS} - INSTALL_ROOT_DIR hicn + HEADER_ROOT_DIR hicn INSTALL_HEADERS ${LIBHICN_HEADER_FILES} ${LIBHICN_HEADER_FILES_PROTOCOL} ${LIBHICN_HEADER_FILES_UTIL} LINK_LIBRARIES ${WSOCK32_LIBRARY} ${WS2_32_LIBRARY} ) @@ -53,7 +53,7 @@ else () COMPONENT lib${LIBHICN} INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../includes DEFINITIONS ${COMPILER_DEFINITIONS} - INSTALL_ROOT_DIR hicn + HEADER_ROOT_DIR hicn INSTALL_HEADERS ${LIBHICN_HEADER_FILES} ${LIBHICN_HEADER_FILES_PROTOCOL} ${LIBHICN_HEADER_FILES_UTIL} LINK_LIBRARIES ${WSOCK32_LIBRARY} ${WS2_32_LIBRARY} ) diff --git a/lib/src/ops.c b/lib/src/ops.c index d49138398..919567721 100644 --- a/lib/src/ops.c +++ b/lib/src/ops.c @@ -42,6 +42,7 @@ DECLARE_get_interest_name_suffix (none, NONE); DECLARE_set_interest_name_suffix (none, NONE); DECLARE_mark_packet_as_interest (none, NONE); DECLARE_mark_packet_as_data (none, NONE); +DECLARE_test_packet_is_interest (none, NONE); DECLARE_reset_interest_for_hash (none, NONE); DECLARE_get_data_locator (none, NONE); DECLARE_set_data_locator (none, NONE); diff --git a/lib/src/protocol/ah.c b/lib/src/protocol/ah.c index da08d1ee8..6f143238a 100644 --- a/lib/src/protocol/ah.c +++ b/lib/src/protocol/ah.c @@ -32,7 +32,8 @@ DECLARE_set_interest_name (ah, UNEXPECTED); DECLARE_get_interest_name_suffix (ah, UNEXPECTED); DECLARE_set_interest_name_suffix (ah, UNEXPECTED); DECLARE_mark_packet_as_interest (ah, UNEXPECTED) -DECLARE_mark_packet_as_data (ah, UNEXPECTED) +DECLARE_mark_packet_as_data (ah, UNEXPECTED); +DECLARE_test_packet_is_interest (ah, UNEXPECTED); DECLARE_get_data_locator (ah, UNEXPECTED); DECLARE_set_data_locator (ah, UNEXPECTED); DECLARE_get_data_name (ah, UNEXPECTED); diff --git a/lib/src/protocol/icmp.c b/lib/src/protocol/icmp.c index b24c0f11e..40a93b099 100644 --- a/lib/src/protocol/icmp.c +++ b/lib/src/protocol/icmp.c @@ -27,6 +27,7 @@ DECLARE_get_interest_name_suffix (icmp, UNEXPECTED) DECLARE_set_interest_name_suffix (icmp, UNEXPECTED) DECLARE_mark_packet_as_interest (icmp, UNEXPECTED) DECLARE_mark_packet_as_data (icmp, UNEXPECTED) +DECLARE_test_packet_is_interest (icmp, UNEXPECTED) DECLARE_get_data_locator (icmp, UNEXPECTED) DECLARE_set_data_locator (icmp, UNEXPECTED) DECLARE_get_data_name (icmp, UNEXPECTED) diff --git a/lib/src/protocol/ipv4.c b/lib/src/protocol/ipv4.c index 5ad4ddbfa..4bab9980b 100644 --- a/lib/src/protocol/ipv4.c +++ b/lib/src/protocol/ipv4.c @@ -117,6 +117,12 @@ ipv4_mark_packet_as_data (hicn_type_t type, hicn_protocol_t * h) } int +ipv4_test_packet_is_interest (hicn_type_t type, hicn_protocol_t * h, u8 *ret) +{ + return CHILD_OPS (test_packet_is_interest, type, h, ret); +} + +int ipv4_reset_interest_for_hash (hicn_type_t type, hicn_protocol_t * h) { /* Sets everything to 0 up to IP destination address */ diff --git a/lib/src/protocol/ipv6.c b/lib/src/protocol/ipv6.c index 9db3e3a17..b0ba3117d 100644 --- a/lib/src/protocol/ipv6.c +++ b/lib/src/protocol/ipv6.c @@ -107,6 +107,12 @@ ipv6_mark_packet_as_data (hicn_type_t type, hicn_protocol_t * h) } int +ipv6_test_packet_is_interest (hicn_type_t type, hicn_protocol_t * h, u8 *ret) +{ + return CHILD_OPS (test_packet_is_interest, type, h, ret); +} + +int ipv6_reset_interest_for_hash (hicn_type_t type, hicn_protocol_t * h) { /* Sets everything to 0 up to IP destination address */ diff --git a/lib/src/protocol/tcp.c b/lib/src/protocol/tcp.c index 31c495ff4..ec1eb27dc 100644 --- a/lib/src/protocol/tcp.c +++ b/lib/src/protocol/tcp.c @@ -97,6 +97,13 @@ tcp_mark_packet_as_data (hicn_type_t type, hicn_protocol_t * h) } int +tcp_test_packet_is_interest (hicn_type_t type, hicn_protocol_t * h, u8 *ret) +{ + *ret = !(h->tcp.flags & HICN_TCP_FLAG_ECE); + return HICN_LIB_ERROR_NONE; +} + +int tcp_reset_interest_for_hash (hicn_type_t type, hicn_protocol_t * h) { memset (&(h->tcp), 0, 4); |