Type: feature
Change-Id: I1369859be0a722ea37e5d3ecb35dee5684fc69f8
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
* are not related to network fibs, i.e., cannot be added as
* connections */
tc = session_get_transport (ls);
* are not related to network fibs, i.e., cannot be added as
* connections */
tc = session_get_transport (ls);
- session_lookup_add_connection (tc, lh);
+ if (!(tc->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP))
+ session_lookup_add_connection (tc, lh);
sh = session_handle (s);
session_lookup_add_connection (tc, sh);
sh = session_handle (s);
session_lookup_add_connection (tc, sh);
return app_worker_connect_notify (app_wrk, s, opaque);
}
return app_worker_connect_notify (app_wrk, s, opaque);
}
if (!tc)
return VNET_API_ERROR_ADDRESS_NOT_IN_USE;
if (!tc)
return VNET_API_ERROR_ADDRESS_NOT_IN_USE;
- session_lookup_del_connection (tc);
+ if (!(tc->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP))
+ session_lookup_del_connection (tc);
transport_stop_listen (tp, s->connection_index);
return 0;
}
transport_stop_listen (tp, s->connection_index);
return 0;
}
{
a->uri = (char *) mp->uri;
a->app_index = app->app_index;
{
a->uri = (char *) mp->uri;
a->app_index = app->app_index;
rv = vnet_unbind_uri (a);
}
else
rv = vnet_unbind_uri (a);
}
else
transport_connection_t *ts;
ts = transport_get_connection (session_get_transport_proto (s),
s->connection_index, s->thread_index);
transport_connection_t *ts;
ts = transport_get_connection (session_get_transport_proto (s),
s->connection_index, s->thread_index);
+ if (ts->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP)
+ return 0;
return session_lookup_del_connection (ts);
}
return session_lookup_del_connection (ts);
}
TRANSPORT_N_SERVICES
} transport_service_type_t;
TRANSPORT_N_SERVICES
} transport_service_type_t;
+typedef enum transport_connection_flags_
+{
+ TRANSPORT_CONNECTION_F_IS_TX_PACED = 1 << 0,
+ TRANSPORT_CONNECTION_F_NO_LOOKUP = 1 << 1, /**< Don't register connection in lookup
+ Does not apply to local apps and
+ transports using the network layer (udp/tcp) */
+} transport_connection_flags_t;
+
typedef struct _transport_stats
{
u64 tx_bytes;
typedef struct _transport_stats
{
u64 tx_bytes;
#define c_flags connection.flags
} transport_connection_t;
#define c_flags connection.flags
} transport_connection_t;
-#define TRANSPORT_CONNECTION_F_IS_TX_PACED 1 << 0
-
typedef enum _transport_proto
{
TRANSPORT_PROTO_TCP,
typedef enum _transport_proto
{
TRANSPORT_PROTO_TCP,