]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2804 in SNORT/snort3 from ~SMULKA/snort3:appid_trace to master
authorLokesh Bevinamarad (lbevinam) <lbevinam@cisco.com>
Thu, 1 Apr 2021 08:45:04 +0000 (08:45 +0000)
committerLokesh Bevinamarad (lbevinam) <lbevinam@cisco.com>
Thu, 1 Apr 2021 08:45:04 +0000 (08:45 +0000)
Squashed commit of the following:

commit 357d3b90982070f6f39dc65cff521af60aef4906
Author: smulka <smulka@cisco.com>
Date:   Mon Mar 22 01:51:28 2021 -0400

    packet_tracer: Appid daq trace log

src/network_inspectors/appid/appid_inspector.cc
src/network_inspectors/packet_tracer/packet_tracer.cc
src/network_inspectors/packet_tracer/packet_tracer.h

index 7fc87c2839f7e0168502be576ebf90d084f6de05..37abd149943697391dc68f70b882dbfb7a1a0899 100644 (file)
@@ -67,7 +67,7 @@ static void openssl_cleanup()
     CRYPTO_cleanup_all_ex_data();
 }
 
-static void add_appid_to_packet_trace(Flow& flow, const OdpContext& odp_context)
+static void populate_trace_data(Flow& flow, const OdpContext& odp_context)
 {
     AppIdSession* session = appid_api.get_appid_session(flow);
     // Skip sessions using old odp context after odp reload
@@ -92,6 +92,16 @@ static void add_appid_to_packet_trace(Flow& flow, const OdpContext& odp_context)
             (payload_app_name ? payload_app_name : ""), payload_id,
             (misc_name ? misc_name : ""), misc_id);
     }
+    if (PacketTracer::is_daq_activated())
+    {
+        PacketTracer::daq_log("AppID+%" PRId64"++service: %s(%d), "
+            "client: %s(%d), payload: %s(%d), misc: %s(%d)$",
+            TO_NSECS(pt_timer->get()),
+            (service_app_name ? service_app_name : ""), service_id,
+            (client_app_name ? client_app_name : ""), client_id,
+            (payload_app_name ? payload_app_name : ""), payload_id,
+            (misc_name ? misc_name : ""), misc_id);
+    }
 }
 
 AppIdInspector::AppIdInspector(AppIdModule& mod)
@@ -190,12 +200,16 @@ void AppIdInspector::eval(Packet* p)
     Profile profile(appid_perf_stats);
     appid_stats.packets++;
 
+
     if (p->flow)
     {
+        if (PacketTracer::is_daq_activated())
+             PacketTracer::pt_timer_start();
+
         AppIdDiscovery::do_application_discovery(p, *this, *pkt_thread_odp_ctxt, pkt_thread_tp_appid_ctxt);
         // FIXIT-L tag verdict reason as appid for daq
-        if (PacketTracer::is_active())
-            add_appid_to_packet_trace(*p->flow, *pkt_thread_odp_ctxt);
+        if (PacketTracer::is_active() || PacketTracer::is_daq_activated())
+            populate_trace_data(*p->flow, *pkt_thread_odp_ctxt);
     }
     else
         appid_stats.ignored_packets++;
index a2c918c1867d5024d4f82091bfd3c90b137ec5db..7d0634c27eedc59b9b473a4f32df1feba30cb10c 100644 (file)
@@ -257,6 +257,12 @@ void PacketTracer::activate(const Packet& p)
         s_pkt_trace->active = false;
 }
 
+void PacketTracer::pt_timer_start()
+{
+    pt_timer->reset();
+    pt_timer->start();
+}
+
 // -----------------------------------------------------------------------------
 // non-static functions
 // -----------------------------------------------------------------------------
index 1b52d02bb5e36c365d1b39e95714aa8a0f2166f0..176463848a7f78fb88566cb3fdb71aa387051659 100644 (file)
@@ -77,6 +77,7 @@ public:
     static SO_PUBLIC void log(TracerMute, const char* format, ...) __attribute__((format (printf, 2, 3)));
 
     static SO_PUBLIC void daq_log(const char* format, ...) __attribute__((format (printf, 1, 2)));
+    static SO_PUBLIC void pt_timer_start();
 
 protected: