Add Packet/IPv4/TCP/UDP helpers API

This commit is contained in:
luwenpeng
2024-01-03 09:57:06 +08:00
parent 529234029f
commit 6b3fc4b560
16 changed files with 502 additions and 956 deletions

View File

@@ -27,21 +27,28 @@
* Data (24 bytes)
*/
unsigned char hdr[] = {0x45, 0x00, 0x00, 0x2c, 0xff, 0xff, 0x20, 0x00, 0x7f, 0x06, 0x4d, 0x8b, 0xc0, 0xa8, 0x24, 0x67, 0xc0, 0xa8, 0x28, 0x89};
unsigned char data[] = {0x45, 0x00, 0x00, 0x2c, 0xff, 0xff, 0x20, 0x00, 0x7f, 0x06, 0x4d, 0x8b, 0xc0, 0xa8, 0x24, 0x67, 0xc0, 0xa8, 0x28, 0x89};
TEST(IPV4_HELPERS, GET)
{
EXPECT_TRUE(ipv4_hdr_get_ipid((struct ip *)hdr) == 65535);
EXPECT_TRUE(ipv4_hdr_get_flags((struct ip *)hdr) == 1);
EXPECT_TRUE(ipv4_hdr_get_frag_offset((struct ip *)hdr) == 0);
EXPECT_TRUE(ipv4_hdr_get_ttl((struct ip *)hdr) == 127);
EXPECT_TRUE(ipv4_hdr_get_protocol((struct ip *)hdr) == 6);
EXPECT_TRUE(ipv4_hdr_get_checksum((struct ip *)hdr) == 0x4d8b);
EXPECT_TRUE(ipv4_hdr_get_src((struct ip *)hdr) == 0xc0a82467);
EXPECT_TRUE(ipv4_hdr_get_dst((struct ip *)hdr) == 0xc0a82889);
EXPECT_TRUE(ipv4_hdr_has_flag_rf((struct ip *)hdr) == false);
EXPECT_TRUE(ipv4_hdr_has_flag_df((struct ip *)hdr) == false);
EXPECT_TRUE(ipv4_hdr_has_flag_mf((struct ip *)hdr) == true);
const struct ip *hdr = (struct ip *)data;
EXPECT_TRUE(ipv4_hdr_get_version(hdr) == 4);
EXPECT_TRUE(ipv4_hdr_get_hl(hdr) == 20);
EXPECT_TRUE(ipv4_hdr_get_tos(hdr) == 0);
EXPECT_TRUE(ipv4_hdr_get_len(hdr) == 44);
EXPECT_TRUE(ipv4_hdr_get_ipid(hdr) == 65535);
EXPECT_TRUE(ipv4_hdr_get_flags(hdr) == 1);
EXPECT_TRUE(ipv4_hdr_has_flag_rf(hdr) == false);
EXPECT_TRUE(ipv4_hdr_has_flag_df(hdr) == false);
EXPECT_TRUE(ipv4_hdr_has_flag_mf(hdr) == true);
EXPECT_TRUE(ipv4_hdr_get_frag_offset(hdr) == 0);
EXPECT_TRUE(ipv4_hdr_get_ttl(hdr) == 127);
EXPECT_TRUE(ipv4_hdr_get_protocol(hdr) == 6);
EXPECT_TRUE(ipv4_hdr_get_checksum(hdr) == 0x4d8b);
EXPECT_TRUE(ipv4_hdr_get_src(hdr) == 0xc0a82467);
EXPECT_TRUE(ipv4_hdr_get_dst(hdr) == 0xc0a82889);
EXPECT_TRUE(ipv4_hdr_get_opt_len(hdr) == 0);
EXPECT_TRUE(ipv4_hdr_get_opt_ptr(hdr) == data + 20);
}
int main(int argc, char **argv)