]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #4656: extractor: add tenant id as common field
authorAnna Norokh -X (anorokh - SOFTSERVE INC at Cisco) <anorokh@cisco.com>
Tue, 11 Mar 2025 10:28:37 +0000 (10:28 +0000)
committerOleksii Shumeiko -X (oshumeik - SOFTSERVE INC at Cisco) <oshumeik@cisco.com>
Tue, 11 Mar 2025 10:28:37 +0000 (10:28 +0000)
Merge in SNORT/snort3 from ~ANOROKH/snort3:extr_add_tenant_field to master

Squashed commit of the following:

commit 2a414abe67d6ffd4bc4d94171a595031a3fa1a89
Author: anorokh <anorokh@cisco.com>
Date:   Tue Mar 4 14:21:32 2025 +0200

    extractor: add tenant id as common field

doc/user/extractor.txt
src/network_inspectors/extractor/extractor_service.cc
src/network_inspectors/extractor/extractors.cc
src/network_inspectors/extractor/extractors.h

index 1686ff9d94cd951bfaba498a5cbf1779dd06285a..1dd5566b2ee161531a053649861aacace0f9aa08 100644 (file)
@@ -71,6 +71,7 @@ Common fields available for every service:
 * `id.resp_h` - server IP address
 * `id.resp_p` - server TCP port
 * `pkt_num` - packet number
+* `tenant_id` - tenant identifier
 
 Fields supported for HTTP:
 
index ffdbe2506844abba38110bfc585550e361bda680..c4e9b2a4c0023c6137f2f0950e7b8875554b19d9 100644 (file)
@@ -45,7 +45,8 @@ std::vector<std::string> ExtractorService::common_fields =
     "id.orig_p",
     "id.resp_h",
     "id.resp_p",
-    "pkt_num"
+    "pkt_num",
+    "tenant_id"
 };
 
 THREAD_LOCAL ExtractorLogger* ExtractorService::logger = nullptr;
index 7603e160638d17079f84123af33577a9f289fcd4..000a747633e8e437ac023c35846b7093a9161251 100644 (file)
@@ -72,5 +72,6 @@ const std::map<std::string, ExtractorEvent::NumGetFn> ExtractorEvent::num_getter
     {"id.orig_p", ExtractorEvent::get_ip_src_port},
     {"id.resp_p", ExtractorEvent::get_ip_dst_port},
     {"uid", ExtractorEvent::get_uid},
-    {"pkt_num", ExtractorEvent::get_pkt_num}
+    {"pkt_num", ExtractorEvent::get_pkt_num},
+    {"tenant_id", ExtractorEvent::get_tenant_id}
 };
index 0a76641b2d0d713bc4a111178ad7000423a41e39..773a63b17498a2c3b65bcee4c059c1e55141f28d 100644 (file)
@@ -115,6 +115,15 @@ protected:
     static uint64_t get_ip_dst_port(const DataEvent*, const Flow* flow)
     { return flow->server_port; }
 
+    static uint64_t get_tenant_id(const DataEvent*, const Flow* flow)
+    {
+#ifdef DISABLE_TENANT_ID
+        return 0;
+#else
+        return flow->key->tenant_id;
+#endif
+    }
+
     static uint64_t get_pkt_num(const DataEvent*, const Flow*)
     {
         const Packet* p = ExtractorEvent::get_packet();