session: api to add new transport types
[vpp.git] / src / vnet / session / session_lookup.h
index 5efb1f4..8224219 100644 (file)
@@ -18,7 +18,6 @@
 
 #include <vnet/session/session_table.h>
 #include <vnet/session/session_types.h>
-#include <vnet/session/transport.h>
 #include <vnet/session/application_namespace.h>
 
 #define HALF_OPEN_LOOKUP_INVALID_VALUE ((u64)~0)
@@ -62,12 +61,14 @@ transport_connection_t *session_lookup_connection6 (u32 fib_index,
                                                    u16 rmt_port, u8 proto);
 session_t *session_lookup_listener4 (u32 fib_index,
                                     ip4_address_t * lcl, u16 lcl_port,
-                                    u8 proto);
+                                    u8 proto, u8 use_wildcard);
 session_t *session_lookup_listener6 (u32 fib_index,
                                     ip6_address_t * lcl, u16 lcl_port,
-                                    u8 proto);
+                                    u8 proto, u8 use_wildcard);
 session_t *session_lookup_listener (u32 table_index,
                                    session_endpoint_t * sep);
+session_t *session_lookup_listener_wildcard (u32 table_index,
+                                            session_endpoint_t * sep);
 int session_lookup_add_connection (transport_connection_t * tc, u64 value);
 int session_lookup_del_connection (transport_connection_t * tc);
 u64 session_lookup_endpoint_listener (u32 table_index,
@@ -79,6 +80,7 @@ int session_lookup_add_session_endpoint (u32 table_index,
                                         session_endpoint_t * sep, u64 value);
 int session_lookup_del_session_endpoint (u32 table_index,
                                         session_endpoint_t * sep);
+int session_lookup_del_session_endpoint2 (session_endpoint_t * sep);
 int session_lookup_del_session (session_t * s);
 int session_lookup_del_half_open (transport_connection_t * tc);
 int session_lookup_add_half_open (transport_connection_t * tc, u64 value);
@@ -97,7 +99,7 @@ void session_lookup_dump_rules_table (u32 fib_index, u8 fib_proto,
 void session_lookup_dump_local_rules_table (u32 fib_index, u8 fib_proto,
                                            u8 transport_proto);
 
-enum _session_rule_scope
+typedef enum _session_rule_scope
 {
   SESSION_RULE_SCOPE_GLOBAL = 1,
   SESSION_RULE_SCOPE_LOCAL = 2,
@@ -124,7 +126,7 @@ typedef struct _session_rule_add_del_args
   u8 transport_proto;
 } session_rule_add_del_args_t;
 
-clib_error_t *vnet_session_rule_add_del (session_rule_add_del_args_t * args);
+int vnet_session_rule_add_del (session_rule_add_del_args_t * args);
 void session_lookup_set_tables_appns (app_namespace_t * app_ns);
 
 void session_lookup_init (void);