This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via 40e4bafd9122e9531b0b6480b14f3d73d1d14e58 (commit) via ca9bf637fdadca1208fce921e836a58b40237c7b (commit) from e7823af35b340fed70ed5f423f7d04c7d5c62b38 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 40e4bafd9122e9531b0b6480b14f3d73d1d14e58 Author: Petri Savolainen petri.savolainen@linaro.org Date: Wed Feb 14 17:04:39 2018 +0200
validation: packet: add IPv4 options
Added test case for IPv4 options.
Signed-off-by: Petri Savolainen petri.savolainen@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/test/common/test_packet_parser.h b/test/common/test_packet_parser.h index fd1b40ab..09c998c9 100644 --- a/test/common/test_packet_parser.h +++ b/test/common/test_packet_parser.h @@ -424,6 +424,18 @@ static const uint8_t test_packet_ipv4_udp_last_frag[] = { 0x2E };
+/* IPv4 / Record Route + NOP options / ICMP */ +static const uint8_t test_packet_ipv4_rr_nop_icmp[] = { + 0x02, 0x00, 0x00, 0x04, 0x05, 0x06, 0x02, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x08, 0x00, 0x49, 0x00, + 0x00, 0x2C, 0x00, 0x01, 0x00, 0x00, 0x40, 0x01, + 0x8E, 0xE2, 0xC0, 0xA8, 0x00, 0x01, 0xC0, 0xA8, + 0x00, 0x02, 0x07, 0x0F, 0x0C, 0xC0, 0xA8, 0x04, + 0x01, 0xC0, 0xA8, 0x05, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x08, 0x00, 0xF7, 0xFF, 0x00, 0x00, + 0x00, 0x00 +}; + #ifdef __cplusplus } #endif diff --git a/test/validation/api/packet/packet.c b/test/validation/api/packet/packet.c index 71bf1d86..054a0d4e 100644 --- a/test/validation/api/packet/packet.c +++ b/test/validation/api/packet/packet.c @@ -70,7 +70,8 @@ static uint32_t parse_test_pkt_len[] = { sizeof(test_packet_bcast_eth_ipv4_udp), sizeof(test_packet_mcast_eth_ipv6_udp), sizeof(test_packet_ipv4_udp_first_frag), - sizeof(test_packet_ipv4_udp_last_frag) + sizeof(test_packet_ipv4_udp_last_frag), + sizeof(test_packet_ipv4_rr_nop_icmp) };
#define packet_compare_offset(pkt1, off1, pkt2, off2, len) \ @@ -3223,6 +3224,39 @@ static void parse_eth_ipv4_udp_last_frag(void) odp_packet_free_multi(pkt, num_pkt); }
+/* Ethernet/IPv4 + options (Record route, NOP)/ICMP */ +static void parse_eth_ipv4_rr_nop_icmp(void) +{ + odp_packet_parse_param_t parse; + int i; + int num_pkt = PARSE_TEST_NUM_PKT; + odp_packet_t pkt[num_pkt]; + + parse_test_alloc(pkt, test_packet_ipv4_rr_nop_icmp, + sizeof(test_packet_ipv4_rr_nop_icmp)); + + parse.proto = ODP_PROTO_ETH; + parse.last_layer = ODP_PROTO_LAYER_L4; + parse.chksums.all_chksum = 0; + + CU_ASSERT(odp_packet_parse(pkt[0], 0, &parse) == 0); + CU_ASSERT(odp_packet_parse_multi(&pkt[1], parse_test.offset_zero, + num_pkt - 1, &parse) == (num_pkt - 1)); + + for (i = 0; i < num_pkt; i++) { + CU_ASSERT(odp_packet_has_eth(pkt[i])); + CU_ASSERT(odp_packet_has_ipv4(pkt[i])); + CU_ASSERT(odp_packet_has_ipopt(pkt[i])); + CU_ASSERT(odp_packet_has_icmp(pkt[i])); + CU_ASSERT(!odp_packet_has_ipfrag(pkt[i])); + CU_ASSERT(!odp_packet_has_ipv6(pkt[i])); + CU_ASSERT(!odp_packet_has_udp(pkt[i])); + CU_ASSERT(!odp_packet_has_tcp(pkt[i])); + } + + odp_packet_free_multi(pkt, num_pkt); +} + odp_testinfo_t packet_suite[] = { ODP_TEST_INFO(packet_test_alloc_free), ODP_TEST_INFO(packet_test_alloc_free_multi), @@ -3279,6 +3313,7 @@ odp_testinfo_t packet_parse_suite[] = { ODP_TEST_INFO(parse_mcast_eth_ipv6_udp), ODP_TEST_INFO(parse_eth_ipv4_udp_first_frag), ODP_TEST_INFO(parse_eth_ipv4_udp_last_frag), + ODP_TEST_INFO(parse_eth_ipv4_rr_nop_icmp), ODP_TEST_INFO_NULL, };
commit ca9bf637fdadca1208fce921e836a58b40237c7b Author: Petri Savolainen petri.savolainen@linaro.org Date: Tue Feb 13 16:10:40 2018 +0200
validation: packet: add IPv4 fragments
Added test cases for IPv4/UDP fragments.
Signed-off-by: Petri Savolainen petri.savolainen@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/test/common/test_packet_parser.h b/test/common/test_packet_parser.h index d0a0582a..fd1b40ab 100644 --- a/test/common/test_packet_parser.h +++ b/test/common/test_packet_parser.h @@ -389,6 +389,41 @@ static const uint8_t test_packet_mcast_eth_ipv6_udp[] = { 0x79, 0x74, 0x65, 0x73, 0x2E };
+static const uint8_t test_packet_ipv4_udp_first_frag[] = { + 0x02, 0x00, 0x00, 0x04, 0x05, 0x06, 0x02, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x08, 0x00, 0x45, 0x00, + 0x00, 0x63, 0x00, 0x01, 0x20, 0x00, 0x40, 0x11, + 0xD9, 0x35, 0xC0, 0xA8, 0x00, 0x01, 0xC0, 0xA8, + 0x00, 0x02, 0x04, 0xD2, 0x16, 0x2E, 0x01, 0x17, + 0x54, 0xF3, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x6D, 0x79, 0x20, 0x64, 0x75, 0x6D, + 0x6D, 0x79, 0x20, 0x70, 0x61, 0x79, 0x6C, 0x6F, + 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x2E, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6C, + 0x65, 0x6E, 0x67, 0x74, 0x68, 0x20, 0x6F, 0x66, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x73, 0x20, + 0x37, 0x31, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x2E +}; + +static const uint8_t test_packet_ipv4_udp_last_frag[] = { + 0x02, 0x00, 0x00, 0x04, 0x05, 0x06, 0x02, 0x00, + 0x00, 0x01, 0x02, 0x03, 0x08, 0x00, 0x45, 0x00, + 0x00, 0x5B, 0x00, 0x01, 0x00, 0x0A, 0x40, 0x11, + 0xF9, 0x33, 0xC0, 0xA8, 0x00, 0x01, 0xC0, 0xA8, + 0x00, 0x02, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x6D, 0x79, 0x20, 0x64, 0x75, 0x6D, + 0x6D, 0x79, 0x20, 0x70, 0x61, 0x79, 0x6C, 0x6F, + 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, + 0x67, 0x2E, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6C, + 0x65, 0x6E, 0x67, 0x74, 0x68, 0x20, 0x6F, 0x66, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x73, 0x20, + 0x37, 0x31, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x2E +}; + #ifdef __cplusplus } #endif diff --git a/test/validation/api/packet/packet.c b/test/validation/api/packet/packet.c index db3a47cf..71bf1d86 100644 --- a/test/validation/api/packet/packet.c +++ b/test/validation/api/packet/packet.c @@ -68,7 +68,9 @@ static uint32_t parse_test_pkt_len[] = { sizeof(test_packet_ipv6_ipsec_esp), sizeof(test_packet_mcast_eth_ipv4_udp), sizeof(test_packet_bcast_eth_ipv4_udp), - sizeof(test_packet_mcast_eth_ipv6_udp) + sizeof(test_packet_mcast_eth_ipv6_udp), + sizeof(test_packet_ipv4_udp_first_frag), + sizeof(test_packet_ipv4_udp_last_frag) };
#define packet_compare_offset(pkt1, off1, pkt2, off2, len) \ @@ -3157,6 +3159,70 @@ static void parse_mcast_eth_ipv6_udp(void) odp_packet_free_multi(pkt, num_pkt); }
+/* Ethernet/IPv4/UDP first fragment */ +static void parse_eth_ipv4_udp_first_frag(void) +{ + odp_packet_parse_param_t parse; + int i; + int num_pkt = PARSE_TEST_NUM_PKT; + odp_packet_t pkt[num_pkt]; + + parse_test_alloc(pkt, test_packet_ipv4_udp_first_frag, + sizeof(test_packet_ipv4_udp_first_frag)); + + parse.proto = ODP_PROTO_ETH; + parse.last_layer = ODP_PROTO_LAYER_L4; + parse.chksums.all_chksum = 0; + + CU_ASSERT(odp_packet_parse(pkt[0], 0, &parse) == 0); + CU_ASSERT(odp_packet_parse_multi(&pkt[1], parse_test.offset_zero, + num_pkt - 1, &parse) == (num_pkt - 1)); + + for (i = 0; i < num_pkt; i++) { + CU_ASSERT(odp_packet_has_eth(pkt[i])); + CU_ASSERT(odp_packet_has_ipv4(pkt[i])); + CU_ASSERT(odp_packet_has_ipfrag(pkt[i])); + CU_ASSERT(odp_packet_has_udp(pkt[i])); + CU_ASSERT(!odp_packet_has_ipv6(pkt[i])); + CU_ASSERT(!odp_packet_has_tcp(pkt[i])); + CU_ASSERT(!odp_packet_has_ipopt(pkt[i])); + } + + odp_packet_free_multi(pkt, num_pkt); +} + +/* Ethernet/IPv4/UDP last fragment */ +static void parse_eth_ipv4_udp_last_frag(void) +{ + odp_packet_parse_param_t parse; + int i; + int num_pkt = PARSE_TEST_NUM_PKT; + odp_packet_t pkt[num_pkt]; + + parse_test_alloc(pkt, test_packet_ipv4_udp_last_frag, + sizeof(test_packet_ipv4_udp_last_frag)); + + parse.proto = ODP_PROTO_ETH; + parse.last_layer = ODP_PROTO_LAYER_L4; + parse.chksums.all_chksum = 0; + + CU_ASSERT(odp_packet_parse(pkt[0], 0, &parse) == 0); + CU_ASSERT(odp_packet_parse_multi(&pkt[1], parse_test.offset_zero, + num_pkt - 1, &parse) == (num_pkt - 1)); + + for (i = 0; i < num_pkt; i++) { + CU_ASSERT(odp_packet_has_eth(pkt[i])); + CU_ASSERT(odp_packet_has_ipv4(pkt[i])); + CU_ASSERT(odp_packet_has_ipfrag(pkt[i])); + CU_ASSERT(odp_packet_has_udp(pkt[i])); + CU_ASSERT(!odp_packet_has_ipv6(pkt[i])); + CU_ASSERT(!odp_packet_has_tcp(pkt[i])); + CU_ASSERT(!odp_packet_has_ipopt(pkt[i])); + } + + odp_packet_free_multi(pkt, num_pkt); +} + odp_testinfo_t packet_suite[] = { ODP_TEST_INFO(packet_test_alloc_free), ODP_TEST_INFO(packet_test_alloc_free_multi), @@ -3211,6 +3277,8 @@ odp_testinfo_t packet_parse_suite[] = { ODP_TEST_INFO(parse_mcast_eth_ipv4_udp), ODP_TEST_INFO(parse_bcast_eth_ipv4_udp), ODP_TEST_INFO(parse_mcast_eth_ipv6_udp), + ODP_TEST_INFO(parse_eth_ipv4_udp_first_frag), + ODP_TEST_INFO(parse_eth_ipv4_udp_last_frag), ODP_TEST_INFO_NULL, };
-----------------------------------------------------------------------
Summary of changes: test/common/test_packet_parser.h | 47 ++++++++++++++++ test/validation/api/packet/packet.c | 105 +++++++++++++++++++++++++++++++++++- 2 files changed, 151 insertions(+), 1 deletion(-)
hooks/post-receive