interface: move vnet_pcap_t to vnet 32/31532/4
authorDamjan Marion <damarion@cisco.com>
Thu, 4 Mar 2021 17:41:59 +0000 (18:41 +0100)
committerOle Tr�an <otroan@employees.org>
Fri, 5 Mar 2021 11:59:24 +0000 (11:59 +0000)
It naturally belogns there...

Type: refactor
Change-Id: I05f7ba01103a5e9b3756f1ea69c8cc5d8f26f0a0
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vlib/main.h
src/vnet/ethernet/node.c
src/vnet/interface_cli.c
src/vnet/interface_output.c
src/vnet/vnet.h

index 5f78b79..3925989 100644 (file)
 #define VLIB_ELOG_MAIN_LOOP 0
 #endif
 
-typedef struct
-{
-  /* Trace RX pkts */
-  u8 pcap_rx_enable;
-  /* Trace TX pkts */
-  u8 pcap_tx_enable;
-  /* Trace drop pkts */
-  u8 pcap_drop_enable;
-  u8 pad1;
-  u32 max_bytes_per_pkt;
-  u32 pcap_sw_if_index;
-  pcap_main_t pcap_main;
-  u32 filter_classify_table_index;
-} vnet_pcap_t;
-
 typedef struct
 {
   u8 trace_filter_enable;
@@ -202,9 +187,6 @@ typedef struct vlib_main_t
   u32 *dispatch_buffer_trace_nodes;
   u8 *pcap_buffer;
 
-  /* pcap rx / tx tracing */
-  vnet_pcap_t pcap;
-
   /* Packet trace capture filter */
   vlib_trace_filter_t trace_filter;
 
index f4f84f8..c31e222 100644 (file)
@@ -1131,6 +1131,7 @@ static_always_inline void
 ethernet_input_trace (vlib_main_t * vm, vlib_node_runtime_t * node,
                      vlib_frame_t * from_frame)
 {
+  vnet_main_t *vnm = vnet_get_main ();
   u32 *from, n_left;
   if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE)))
     {
@@ -1159,10 +1160,10 @@ ethernet_input_trace (vlib_main_t * vm, vlib_node_runtime_t * node,
     }
 
   /* rx pcap capture if enabled */
-  if (PREDICT_FALSE (vlib_global_main.pcap.pcap_rx_enable))
+  if (PREDICT_FALSE (vnm->pcap.pcap_rx_enable))
     {
       u32 bi0;
-      vnet_pcap_t *pp = &vlib_global_main.pcap;
+      vnet_pcap_t *pp = &vnm->pcap;
 
       from = vlib_frame_vector_args (from_frame);
       n_left = from_frame->n_vectors;
@@ -1188,7 +1189,6 @@ ethernet_input_trace (vlib_main_t * vm, vlib_node_runtime_t * node,
          if (pp->pcap_sw_if_index == 0 ||
              pp->pcap_sw_if_index == vnet_buffer (b0)->sw_if_index[VLIB_RX])
            {
-             vnet_main_t *vnm = vnet_get_main ();
              vnet_hw_interface_t *hi =
                vnet_get_sup_hw_interface
                (vnm, vnet_buffer (b0)->sw_if_index[VLIB_RX]);
index 54e0673..9ade975 100644 (file)
@@ -1930,7 +1930,8 @@ int
 vnet_pcap_dispatch_trace_configure (vnet_pcap_dispatch_trace_args_t * a)
 {
   vlib_main_t *vm = vlib_get_main ();
-  vnet_pcap_t *pp = &vm->pcap;
+  vnet_main_t *vnm = vnet_get_main ();
+  vnet_pcap_t *pp = &vnm->pcap;
   pcap_main_t *pm = &pp->pcap_main;
   vnet_classify_main_t *cm = &vnet_classify_main;
 
index ff315f6..641bd92 100644 (file)
@@ -426,9 +426,10 @@ static_always_inline void vnet_interface_pcap_tx_trace
   (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame,
    int sw_if_index_from_buffer)
 {
+  vnet_main_t *vnm = vnet_get_main ();
   u32 n_left_from, *from;
   u32 sw_if_index;
-  vnet_pcap_t *pp = &vlib_global_main.pcap;
+  vnet_pcap_t *pp = &vnm->pcap;
 
   if (PREDICT_TRUE (pp->pcap_tx_enable == 0))
     return;
@@ -1047,8 +1048,9 @@ VLIB_NODE_FN (interface_drop) (vlib_main_t * vm,
                               vlib_node_runtime_t * node,
                               vlib_frame_t * frame)
 {
+  vnet_main_t *vnm = vnet_get_main ();
   vnet_interface_main_t *im = &vnet_get_main ()->interface_main;
-  vnet_pcap_t *pp = &vlib_global_main.pcap;
+  vnet_pcap_t *pp = &vnm->pcap;
 
   if (PREDICT_FALSE (pp->pcap_drop_enable))
     pcap_drop_trace (vm, im, pp, frame);
index be680a7..38777b9 100644 (file)
@@ -57,6 +57,21 @@ typedef struct _vnet_ip_table_function_list_elt
   clib_error_t *(*fp) (struct vnet_main_t * vnm, u32 table_id, u32 flags);
 } _vnet_ip_table_function_list_elt_t;
 
+typedef struct
+{
+  /* Trace RX pkts */
+  u8 pcap_rx_enable;
+  /* Trace TX pkts */
+  u8 pcap_tx_enable;
+  /* Trace drop pkts */
+  u8 pcap_drop_enable;
+  u8 pad1;
+  u32 max_bytes_per_pkt;
+  u32 pcap_sw_if_index;
+  pcap_main_t pcap_main;
+  u32 filter_classify_table_index;
+} vnet_pcap_t;
+
 typedef struct vnet_main_t
 {
   u32 local_interface_hw_if_index;
@@ -83,13 +98,16 @@ typedef struct vnet_main_t
     _vnet_ip_table_function_list_elt_t
     * ip_table_add_del_functions[VNET_ITF_FUNC_N_PRIO];
 
-  /*
-   * Last "api" error, preserved so we can issue reasonable diagnostics
-   * at or near the top of the food chain
-   */
-  vnet_api_error_t api_errno;
+    /* pcap rx / tx tracing */
+    vnet_pcap_t pcap;
+
+    /*
+     * Last "api" error, preserved so we can issue reasonable diagnostics
+     * at or near the top of the food chain
+     */
+    vnet_api_error_t api_errno;
 
-  vlib_main_t *vlib_main;
+    vlib_main_t *vlib_main;
 } vnet_main_t;
 
 extern vnet_main_t vnet_main;