From: Masud Hasan (mashasan) Date: Mon, 21 Sep 2020 13:46:44 +0000 (+0000) Subject: Merge pull request #2404 in SNORT/snort3 from ~MMATIRKO/snort3:rna_cov to master X-Git-Tag: 3.0.3-1~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1b8f7a11194773180b9c47637b62b3e69e335ce;p=thirdparty%2Fsnort3.git Merge pull request #2404 in SNORT/snort3 from ~MMATIRKO/snort3:rna_cov to master Squashed commit of the following: commit f777a2f58edf5204ea4fa470d1220e80095fcdb9 Author: Michael Matirko Date: Mon Aug 17 12:11:33 2020 -0400 rna: add unit test to validate VLAN handling --- diff --git a/src/network_inspectors/rna/rna_mac_cache.cc b/src/network_inspectors/rna/rna_mac_cache.cc index 06fe2dee3..2195fd512 100644 --- a/src/network_inspectors/rna/rna_mac_cache.cc +++ b/src/network_inspectors/rna/rna_mac_cache.cc @@ -96,9 +96,10 @@ void HostTrackerMac::stringify(string& str) #ifdef UNIT_TEST TEST_CASE("RNA Mac Cache", "[rna_mac_cache]") { + uint8_t a_mac[6] = {0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6}; + SECTION("HostCacheMac: store, retrieve") { - uint8_t a_mac[6] = {0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6}; uint8_t b_mac[6] = {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6}; uint8_t c_mac[6] = {0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6}; @@ -141,9 +142,28 @@ TEST_CASE("RNA Mac Cache", "[rna_mac_cache]") SECTION("HostCacheMac: MAC Hashing") { - uint8_t a_mac[6] = {0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6}; uint64_t hash = hash_mac(a_mac); CHECK(hash == 0xA1A2A3A4A5A6); } + + SECTION("HostCacheMac: VLAN Tag Details") + { + MacKey a(a_mac); + auto a_ptr = host_cache_mac.find_else_create(a, nullptr); + + a_ptr->update_vlan(12345, 54321); + uint8_t cfi, priority; + uint16_t vid; + uint16_t vth_pri_cfi_vlan = a_ptr->get_vlan(); + + a_ptr->get_vlan_details(cfi, priority, vid); + + CHECK(a_ptr->has_vlan()); + CHECK(cfi == (ntohs(vth_pri_cfi_vlan) & 0x1000) >> 12); + CHECK(priority == (ntohs(vth_pri_cfi_vlan)) >> 13); + CHECK(vid == (ntohs(vth_pri_cfi_vlan) & 0x0FFF)); + + } } #endif +