增加和tfe通信接口, 添加负载均衡功能等
This commit is contained in:
48
common/include/kni_cmsg.h
Normal file
48
common/include/kni_cmsg.h
Normal file
@@ -0,0 +1,48 @@
|
||||
#pragma once
|
||||
|
||||
#define KNI_CMSG_TLV_NR_MAX 64
|
||||
struct kni_cmsg;
|
||||
struct kni_cmsg_serialize_header;
|
||||
|
||||
|
||||
enum kni_cmsg_errno{
|
||||
KNI_CMSG_INVALID_FORMAT = -1,
|
||||
KNI_CMSG_BUFF_NOT_ENOUGH = -2,
|
||||
KNI_CMSG_INVALID_TYPE = -3
|
||||
};
|
||||
|
||||
enum tfe_cmsg_tlv_type
|
||||
{
|
||||
/* TCP restore information */
|
||||
TFE_CMSG_TCP_RESTORE_SEQ = 0x0,
|
||||
TFE_CMSG_TCP_RESTORE_ACK = 0x1,
|
||||
TFE_CMSG_TCP_RESTORE_MSS_CLIENT = 0x2,
|
||||
TFE_CMSG_TCP_RESTORE_MSS_SERVER = 0x3,
|
||||
TFE_CMSG_TCP_RESTORE_WSACLE_CLIENT = 0x4,
|
||||
TFE_CMSG_TCP_RESTORE_WSACLE_SERVER = 0x5,
|
||||
TFE_CMSG_TCP_RESTORE_SACK_CLIENT = 0x6,
|
||||
TFE_CMSG_TCP_RESTORE_SACK_SERVER = 0x7,
|
||||
TFE_CMSG_TCP_RESTORE_TS_CLIENT = 0x8,
|
||||
TFE_CMSG_TCP_RESTORE_TS_SERVER = 0x9,
|
||||
TFE_CMSG_TCP_RESTORE_PROTOCOL = 0xa,
|
||||
|
||||
TFE_CMSG_POLICY_ID = 0x10,
|
||||
TFE_CMSG_STREAM_TRACE_ID = 0x11,
|
||||
|
||||
TFE_CMSG_SSL_INTERCEPT_STATE, //size uint64_t, 0-passthrough, 1-intercept, 2-shutdown, referer from enum ssl_stream_action
|
||||
TFE_CMSG_SSL_UPSTREAM_LATENCY, //size uint64_t, milisecond
|
||||
TFE_CMSG_SSL_DOWNSTREAM_LATENCY, //size uint64_t, milisecond
|
||||
TFE_CMSG_SSL_UPSTREAM_VERSION, //string, SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 unknown
|
||||
TFE_CMSG_SSL_DOWNSTREAM_VERSION,
|
||||
TFE_CMSG_SSL_PINNING_STATE, //size uint64_t, 0-not pinning 1-pinning 2-maybe pinning
|
||||
TFE_CMSG_SSL_CERT_VERIFY,
|
||||
TFE_CMSG_SSL_ERROR
|
||||
};
|
||||
|
||||
struct kni_cmsg* kni_cmsg_init();
|
||||
void kni_cmsg_destroy(struct kni_cmsg *cmsg);
|
||||
int kni_cmsg_get(struct kni_cmsg *cmsg, uint16_t type, uint16_t *size, unsigned char **pvalue);
|
||||
int kni_cmsg_set(struct kni_cmsg *cmsg, uint16_t type, const unsigned char *value, uint16_t size);
|
||||
uint16_t kni_cmsg_serialize_size_get(struct kni_cmsg *cmsg);
|
||||
int kni_cmsg_serialize(struct kni_cmsg *cmsg, unsigned char *buff, uint16_t bufflen, uint16_t *serialize_len);
|
||||
int kni_cmsg_deserialize(const unsigned char *data, uint16_t len, struct kni_cmsg** pcmsg);
|
||||
@@ -21,6 +21,7 @@
|
||||
#define KNI_PATH_MAX 256
|
||||
#define KNI_SYMBOL_MAX 64
|
||||
#define KNI_DOMAIN_MAX 256
|
||||
|
||||
#ifndef MIN
|
||||
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#endif
|
||||
@@ -79,6 +80,8 @@ enum kni_field{
|
||||
KNI_FIELD_INTCP_STM,
|
||||
KNI_FIELD_SSL_STM,
|
||||
KNI_FIELD_HTTP_STM,
|
||||
KNI_FIELD_SENDLOG_SUCC,
|
||||
KNI_FIELD_SENDLOG_FAIL,
|
||||
KNI_FIELD_UNKNOWN_STM,
|
||||
};
|
||||
|
||||
@@ -87,10 +90,12 @@ struct kni_field_stat_handle{
|
||||
int fields[KNI_FIELD_MAX];
|
||||
};
|
||||
|
||||
|
||||
int kni_stream_addr_trans(struct ipaddr* addr, char *output, int len);
|
||||
uint16_t kni_ip_checksum(const void *buf, size_t hdr_len);
|
||||
uint16_t kni_tcp_checksum(const void *_buf, size_t len, in_addr_t src_addr, in_addr_t dest_addr);
|
||||
uint16_t kni_udp_checksum(const void *_buf, size_t len, in_addr_t src_addr, in_addr_t dest_addr);
|
||||
struct kni_tcpopt_info* kni_get_tcpopt(struct tcphdr* tcphdr,int tcphdr_len);
|
||||
int kni_ipv4_addr_get_by_eth(const char *ifname, uint32_t *ip);
|
||||
|
||||
|
||||
MESA_htable_handle kni_create_htable(const char *profile, const char *section, void *free_data_cb, void *expire_notify_cb, void *logger);
|
||||
Reference in New Issue
Block a user