acl-plugin: create forward and return sessions in lieu of making a special per-packet...
[vpp.git] / src / plugins / acl / sess_mgmt_node.c
index b4faf55..103db35 100644 (file)
@@ -48,6 +48,26 @@ fa_session_get_shortest_timeout (acl_main_t * am)
   return timeout;
 }
 
+static u8 *
+format_session_bihash_5tuple (u8 * s, va_list * args)
+{
+  fa_5tuple_t *p5t = va_arg (*args, fa_5tuple_t *);
+  fa_full_session_id_t *sess = (void *) &p5t->pkt;
+
+  return format (s, "l3 %U -> %U"
+                " l4 lsb_of_sw_if_index %d proto %d l4_is_input %d l4_slow_path %d l4_reserved0 %d port %d -> %d | sess id %d thread id %d epoch %04x",
+                format_ip46_address, &p5t->addr[0],
+                IP46_TYPE_ANY,
+                format_ip46_address, &p5t->addr[1],
+                IP46_TYPE_ANY,
+                p5t->l4.lsb_of_sw_if_index,
+                p5t->l4.proto, p5t->l4.is_input, p5t->l4.is_slowpath,
+                p5t->l4.reserved0, p5t->l4.port[0], p5t->l4.port[1],
+                sess->session_index, sess->thread_index,
+                sess->intf_policy_epoch);
+}
+
+
 static void
 acl_fa_verify_init_sessions (acl_main_t * am)
 {
@@ -73,6 +93,8 @@ acl_fa_verify_init_sessions (acl_main_t * am)
                             "ACL plugin FA session bihash",
                             am->fa_conn_table_hash_num_buckets,
                             am->fa_conn_table_hash_memory_size);
+      clib_bihash_set_kvp_format_fn_40_8 (&am->fa_sessions_hash,
+                                         format_session_bihash_5tuple);
       am->fa_sessions_hash_is_initialized = 1;
     }
 }