acl-plugin: optimize session idle timer checks
[vpp.git] / src / plugins / acl / acl.c
index 8f2be5d..866c6ff 100644 (file)
@@ -472,7 +472,7 @@ acl_del_list (u32 acl_list_index)
     return VNET_API_ERROR_ACL_IN_USE_INBOUND;
   if (acl_is_used_by (acl_list_index, am->output_sw_if_index_vec_by_acl))
     return VNET_API_ERROR_ACL_IN_USE_OUTBOUND;
-  /* lookup contexts cover other cases, not just inbound/oubound, so check that */
+  /* lookup contexts cover other cases, not just inbound/outbound, so check that */
   if (acl_is_used_by (acl_list_index, am->lc_index_vec_by_acl))
     return VNET_API_ERROR_ACL_IN_USE_BY_LOOKUP_CONTEXT;
 
@@ -2239,7 +2239,7 @@ macip_acl_add_list (u32 count, vl_api_macip_acl_rule_t rules[],
   a->count = count;
   memcpy (a->tag, tag, sizeof (a->tag));
 
-  /* Create and populate the classifer tables */
+  /* Create and populate the classifier tables */
   macip_create_classify_tables (am, *acl_list_index);
   clib_mem_set_heap (oldheap);
   /* If the ACL was already applied somewhere, reapply the newly created tables */
@@ -3900,6 +3900,10 @@ acl_plugin_show_sessions (acl_main_t * am,
                       pw->interrupt_is_unwanted);
       vlib_cli_output (vm, "  interrupt generation: %d",
                       pw->interrupt_generation);
+      vlib_cli_output (vm, "  received session change requests: %d",
+                      pw->rcvd_session_change_requests);
+      vlib_cli_output (vm, "  sent session change requests: %d",
+                      pw->sent_session_change_requests);
     }
   vlib_cli_output (vm, "\n\nConn cleaner thread counters:");
 #define _(cnt, desc) vlib_cli_output(vm, "             %20lu: %s", am->cnt, desc);
@@ -4212,6 +4216,10 @@ acl_init (vlib_main_t * vm)
     for (wk = 0; wk < vec_len (am->per_worker_data); wk++)
       {
        acl_fa_per_worker_data_t *pw = &am->per_worker_data[wk];
+       if (tm->n_vlib_mains > 1)
+         {
+           clib_spinlock_init (&pw->pending_session_change_request_lock);
+         }
        vec_validate (pw->expired,
                      ACL_N_TIMEOUTS *
                      am->fa_max_deleted_sessions_per_interval);