- memset (&lcl4, 0, sizeof (lcl4));
- srt = &st->session_rules[sep->transport_proto];
- ai = session_rules_table_lookup4 (srt, &lcl4, &sep->ip.ip4, 0,
- sep->port);
- if (ai != SESSION_RULES_TABLE_INVALID_INDEX)
- return session_lookup_action_to_session (ai);
- }
- else
- {
- make_v6_listener_kv (&kv6, &sep->ip.ip6, sep->port, sst);
- rv = clib_bihash_search_inline_48_8 (&st->v6_session_hash, &kv6);
- if (rv == 0)
- return kv6.value;
-
- memset (&lcl6, 0, sizeof (lcl6));
- srt = &st->session_rules[sep->transport_proto];
- ai = session_rules_table_lookup6 (srt, &lcl6, &sep->ip.ip6, 0,
- sep->port);
- if (ai != SESSION_RULES_TABLE_INVALID_INDEX)
- return session_lookup_action_to_session (ai);
- }
- return SESSION_INVALID_HANDLE;
-}
-
-stream_session_t *
-session_lookup_global_session_endpoint (session_endpoint_t * sep)
-{
- session_table_t *st;
- session_kv4_t kv4;
- session_kv6_t kv6;
- ip4_address_t lcl4;
- ip6_address_t lcl6;
- u8 fib_proto;
- u32 table_index;
- int rv;
-
- fib_proto = session_endpoint_fib_proto (sep);
- table_index = session_lookup_get_index_for_fib (fib_proto, sep->fib_index);
- st = session_table_get (table_index);
- if (!st)
- return 0;
- if (sep->is_ip4)
- {