TSG-13837 支持decrypted traffic steering/mirroring,并重构packet_io
This commit is contained in:
@@ -8,35 +8,35 @@ extern "C"
|
||||
|
||||
#include <netinet/in.h>
|
||||
|
||||
enum addr_tuple4_type
|
||||
{
|
||||
ADDR_TUPLE4_TYPE_V4,
|
||||
ADDR_TUPLE4_TYPE_V6,
|
||||
};
|
||||
enum addr_tuple4_type
|
||||
{
|
||||
ADDR_TUPLE4_TYPE_V4,
|
||||
ADDR_TUPLE4_TYPE_V6,
|
||||
};
|
||||
|
||||
struct addr_v4
|
||||
{
|
||||
struct in_addr src_addr; /* network order */
|
||||
struct in_addr dst_addr; /* network order */
|
||||
};
|
||||
struct addr_v4
|
||||
{
|
||||
struct in_addr src_addr; /* network order */
|
||||
struct in_addr dst_addr; /* network order */
|
||||
};
|
||||
|
||||
struct addr_v6
|
||||
{
|
||||
struct in6_addr src_addr; /* network order */
|
||||
struct in6_addr dst_addr; /* network order */
|
||||
};
|
||||
struct addr_v6
|
||||
{
|
||||
struct in6_addr src_addr; /* network order */
|
||||
struct in6_addr dst_addr; /* network order */
|
||||
};
|
||||
|
||||
struct addr_tuple4
|
||||
struct addr_tuple4
|
||||
{
|
||||
enum addr_tuple4_type addr_type;
|
||||
in_port_t src_port; /* network order */
|
||||
in_port_t dst_port; /* network order */
|
||||
union
|
||||
{
|
||||
enum addr_tuple4_type addr_type;
|
||||
in_port_t src_port; /* network order */
|
||||
in_port_t dst_port; /* network order */
|
||||
union
|
||||
{
|
||||
struct addr_v4 addr_v4;
|
||||
struct addr_v6 addr_v6;
|
||||
};
|
||||
struct addr_v4 addr_v4;
|
||||
struct addr_v6 addr_v6;
|
||||
};
|
||||
};
|
||||
|
||||
#define INIT_ADDR_V4(name, src_addr_str, src_port_num, dst_addr_str, dst_port_num) \
|
||||
struct addr_tuple4 name; \
|
||||
@@ -56,8 +56,9 @@ extern "C"
|
||||
inet_pton(AF_INET6, (src_addr_str), &(name).addr_v6.src_addr); \
|
||||
inet_pton(AF_INET6, (dst_addr_str), &(name).addr_v6.dst_addr);
|
||||
|
||||
char *addr_tuple4_to_str(const struct addr_tuple4 *addr);
|
||||
void addr_tuple4_reverse(const struct addr_tuple4 *orin, struct addr_tuple4 *out);
|
||||
void addr_tuple4_copy(struct addr_tuple4 *dst, struct addr_tuple4 *src);
|
||||
char *addr_tuple4_to_str(const struct addr_tuple4 *addr);
|
||||
void addr_tuple4_reverse(const struct addr_tuple4 *orin, struct addr_tuple4 *out);
|
||||
|
||||
#ifdef __cpluscplus
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ int raw_packet_parser_get_most_outer_tuple4(struct raw_pkt_parser *handler, stru
|
||||
int raw_packet_parser_get_most_inner_address(struct raw_pkt_parser *handler, struct addr_tuple4 *addr);
|
||||
int raw_packet_parser_get_most_outer_address(struct raw_pkt_parser *handler, struct addr_tuple4 *addr);
|
||||
|
||||
uint64_t raw_packet_parser_get_hash_value(struct raw_pkt_parser *handler, enum ldbc_method method, int dir_is_internal);
|
||||
uint64_t raw_packet_parser_get_hash_value(struct raw_pkt_parser *handler, enum ldbc_method method, int dir_is_i2e);
|
||||
|
||||
#ifdef __cpluscplus
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ struct session_node
|
||||
uint64_t session_id; /* first key */
|
||||
struct addr_tuple4 session_addr; /* second key */
|
||||
|
||||
void *val_data;
|
||||
fn_free_cb *val_freecb;
|
||||
void *value;
|
||||
fn_free_cb *value_free_cb;
|
||||
|
||||
UT_hash_handle hh1; /* handle for first hash table */
|
||||
UT_hash_handle hh2; /* handle for second hash table */
|
||||
@@ -36,10 +36,10 @@ void session_table_reset(struct session_table *table);
|
||||
uint64_t session_table_count(struct session_table *table);
|
||||
|
||||
// session_addr : deep copy
|
||||
// val_data : shallow copy (malloc by user, free by val_freecb)
|
||||
// value : shallow copy (malloc by user, free by value_free_cb)
|
||||
// return 0 : suceess
|
||||
// return -1 : key exists
|
||||
int session_table_insert(struct session_table *table, uint64_t session_id, const struct addr_tuple4 *session_addr, void *val_data, const fn_free_cb *val_freecb);
|
||||
int session_table_insert(struct session_table *table, uint64_t session_id, const struct addr_tuple4 *session_addr, void *value, const fn_free_cb *value_free_cb);
|
||||
|
||||
// return 0 : success
|
||||
// return -1 : key not exists
|
||||
|
||||
@@ -8,17 +8,17 @@ extern "C"
|
||||
|
||||
#define MIN(a, b) ((a) > (b) ? (b) : (a))
|
||||
|
||||
#define LOG_TAG_POLICY "POLICY"
|
||||
#define LOG_TAG_UTILS "UTILS"
|
||||
#define LOG_TAG_RAWPKT "RAW_PACKET"
|
||||
#define LOG_TAG_CTRLPKT "CTRL_PACKET"
|
||||
#define LOG_TAG_STABLE "SESSION_TABLE"
|
||||
#define LOG_TAG_PKTIO "PACKET_IO"
|
||||
#define LOG_TAG_METRICS "G_METRICS"
|
||||
#define LOG_TAG_SF_METRICS "SF_METRICS"
|
||||
#define LOG_TAG_SF_STATUS "SF_STATUS"
|
||||
#define LOG_TAG_SCE "SCE"
|
||||
#define LOG_TAG_TIMESTAMP "TIMESTAMP"
|
||||
#define LOG_TAG_SCE "SCE"
|
||||
#define LOG_TAG_POLICY "POLICY"
|
||||
#define LOG_TAG_PKTIO "PACKET_IO"
|
||||
#define LOG_TAG_RAWPKT "RAW_PACKET"
|
||||
#define LOG_TAG_CTRLPKT "CTRL_PACKET"
|
||||
#define LOG_TAG_METRICS "G_METRICS"
|
||||
#define LOG_TAG_SF_METRICS "SF_METRICS"
|
||||
#define LOG_TAG_SF_STATUS "SF_STATUS"
|
||||
#define LOG_TAG_UTILS "UTILS"
|
||||
#define LOG_TAG_HEALTH_CHECK "HEALTH_CHECK"
|
||||
#define LOG_TAG_TIMESTAMP "TIMESTAMP"
|
||||
|
||||
#define ATOMIC_INC(x) __atomic_fetch_add(x, 1, __ATOMIC_RELAXED)
|
||||
#define ATOMIC_DEC(x) __atomic_fetch_sub(x, 1, __ATOMIC_RELAXED)
|
||||
@@ -71,7 +71,7 @@ struct route_ctx
|
||||
int len;
|
||||
};
|
||||
|
||||
int route_ctx_is_empty(struct route_ctx *ctx);
|
||||
void route_ctx_write_once(struct route_ctx *dst, struct route_ctx *src);
|
||||
void route_ctx_copy(struct route_ctx *dst, struct route_ctx *src);
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user