TSG-13196 Decrypted Traffic Steering增加FieldStat字段
* stee_ssl_conn
* stee_http_conn
* stee_c_tx_B
* stee_s_rx_B
* stee_s_tx_B
* stee_c_rx_B
This commit is contained in:
@@ -39,6 +39,19 @@ enum TFE_STAT_FIELD
|
|||||||
/* Protocol */
|
/* Protocol */
|
||||||
STAT_STREAM_TCP_PLAIN,
|
STAT_STREAM_TCP_PLAIN,
|
||||||
STAT_STREAM_TCP_SSL,
|
STAT_STREAM_TCP_SSL,
|
||||||
|
|
||||||
|
/* Decrypted Traffic Steering */
|
||||||
|
STAT_STEERING_SSL_CONN,
|
||||||
|
STAT_STEERING_HTTP_CONN,
|
||||||
|
STAT_STEERING_CLIENT_TX_B,
|
||||||
|
STAT_STEERING_SERVER_RX_B,
|
||||||
|
STAT_STEERING_SERVER_TX_B,
|
||||||
|
STAT_STEERING_CLIENT_RX_B,
|
||||||
|
STAT_STEERING_CLIENT_ERR,
|
||||||
|
STAT_STEERING_SERVER_ERR,
|
||||||
|
STAT_STEERING_CLIENT_EOF,
|
||||||
|
STAT_STEERING_SERVER_EOF,
|
||||||
|
|
||||||
TFE_STAT_MAX
|
TFE_STAT_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -461,6 +461,18 @@ static const char * __str_stat_spec_map[] =
|
|||||||
[STAT_STREAM_INCPT_UP_BYTES] = "ustm_incpt_B",
|
[STAT_STREAM_INCPT_UP_BYTES] = "ustm_incpt_B",
|
||||||
[STAT_STREAM_TCP_PLAIN] = "plain",
|
[STAT_STREAM_TCP_PLAIN] = "plain",
|
||||||
[STAT_STREAM_TCP_SSL] = "ssl",
|
[STAT_STREAM_TCP_SSL] = "ssl",
|
||||||
|
|
||||||
|
[STAT_STEERING_SSL_CONN] = "stee_ssl_conn",
|
||||||
|
[STAT_STEERING_HTTP_CONN] = "stee_http_conn",
|
||||||
|
[STAT_STEERING_CLIENT_TX_B] = "stee_c_tx_B",
|
||||||
|
[STAT_STEERING_SERVER_RX_B] = "stee_s_rx_B",
|
||||||
|
[STAT_STEERING_SERVER_TX_B] = "stee_s_tx_B",
|
||||||
|
[STAT_STEERING_CLIENT_RX_B] = "stee_c_rx_B",
|
||||||
|
[STAT_STEERING_CLIENT_ERR] = "stee_c_err",
|
||||||
|
[STAT_STEERING_SERVER_ERR] = "stee_s_err",
|
||||||
|
[STAT_STEERING_CLIENT_EOF] = "stee_c_eof",
|
||||||
|
[STAT_STEERING_SERVER_EOF] = "stee_s_eof",
|
||||||
|
|
||||||
[TFE_STAT_MAX] = NULL
|
[TFE_STAT_MAX] = NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -602,13 +602,16 @@ static void __stream_bev_readcb(struct bufferevent * bev, void * arg)
|
|||||||
(STREAM_PROTO_PLAIN == _stream->session_type && _stream->proxy_ref->traffic_steering_options.enable_steering_http) ||
|
(STREAM_PROTO_PLAIN == _stream->session_type && _stream->proxy_ref->traffic_steering_options.enable_steering_http) ||
|
||||||
(STREAM_PROTO_SSL == _stream->session_type &&_stream->proxy_ref->traffic_steering_options.enable_steering_ssl)))
|
(STREAM_PROTO_SSL == _stream->session_type &&_stream->proxy_ref->traffic_steering_options.enable_steering_ssl)))
|
||||||
{
|
{
|
||||||
|
enum TFE_STAT_FIELD stat_filed = TFE_STAT_MAX;
|
||||||
if (bev == _stream->conn_downstream->bev)
|
if (bev == _stream->conn_downstream->bev)
|
||||||
{
|
{
|
||||||
peer_conn = _stream->conn_fake_c;
|
peer_conn = _stream->conn_fake_c;
|
||||||
|
stat_filed = STAT_STEERING_CLIENT_TX_B;
|
||||||
}
|
}
|
||||||
else if (bev == _stream->conn_upstream->bev)
|
else if (bev == _stream->conn_upstream->bev)
|
||||||
{
|
{
|
||||||
peer_conn = _stream->conn_fake_s;
|
peer_conn = _stream->conn_fake_s;
|
||||||
|
stat_filed = STAT_STEERING_SERVER_TX_B;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -626,14 +629,13 @@ static void __stream_bev_readcb(struct bufferevent * bev, void * arg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 增加计数
|
|
||||||
|
|
||||||
TFE_LOG_DEBUG(__STREAM_LOGGER(_stream), "decrypted traffic steering, %s send %d bytes from %s to %s",
|
TFE_LOG_DEBUG(__STREAM_LOGGER(_stream), "decrypted traffic steering, %s send %d bytes from %s to %s",
|
||||||
_stream->str_stream_addr,
|
_stream->str_stream_addr,
|
||||||
evbuffer_get_length(inbuf),
|
evbuffer_get_length(inbuf),
|
||||||
bev == _stream->conn_downstream->bev ? "conn_downstream" : "conn_upstream",
|
bev == _stream->conn_downstream->bev ? "conn_downstream" : "conn_upstream",
|
||||||
bev == _stream->conn_downstream->bev ? "conn_fake_c" : "conn_fake_s");
|
bev == _stream->conn_downstream->bev ? "conn_fake_c" : "conn_fake_s");
|
||||||
|
|
||||||
|
TFE_PROXY_STAT_INCREASE(stat_filed, evbuffer_get_length(inbuf));
|
||||||
outbuf = bufferevent_get_output(peer_conn->bev);
|
outbuf = bufferevent_get_output(peer_conn->bev);
|
||||||
evbuffer_add_buffer(outbuf, inbuf);
|
evbuffer_add_buffer(outbuf, inbuf);
|
||||||
|
|
||||||
@@ -1064,13 +1066,16 @@ static void __steering_stream_bev_readcb(struct bufferevent * bev, void * arg)
|
|||||||
struct tfe_stream_private * _stream = (struct tfe_stream_private *)arg;
|
struct tfe_stream_private * _stream = (struct tfe_stream_private *)arg;
|
||||||
struct tfe_conn_private * peer_conn = NULL;
|
struct tfe_conn_private * peer_conn = NULL;
|
||||||
|
|
||||||
|
enum TFE_STAT_FIELD stat_filed = TFE_STAT_MAX;
|
||||||
if (bev == _stream->conn_fake_c->bev)
|
if (bev == _stream->conn_fake_c->bev)
|
||||||
{
|
{
|
||||||
peer_conn = _stream->conn_downstream;
|
peer_conn = _stream->conn_downstream;
|
||||||
|
stat_filed = STAT_STEERING_CLIENT_RX_B;
|
||||||
}
|
}
|
||||||
else if (bev == _stream->conn_fake_s->bev)
|
else if (bev == _stream->conn_fake_s->bev)
|
||||||
{
|
{
|
||||||
peer_conn = _stream->conn_upstream;
|
peer_conn = _stream->conn_upstream;
|
||||||
|
stat_filed = STAT_STEERING_SERVER_RX_B;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1088,8 +1093,6 @@ static void __steering_stream_bev_readcb(struct bufferevent * bev, void * arg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 增加计数
|
|
||||||
|
|
||||||
TFE_LOG_DEBUG(__STREAM_LOGGER(_stream), "decrypted traffic steering, %s send %d bytes form %s to %s",
|
TFE_LOG_DEBUG(__STREAM_LOGGER(_stream), "decrypted traffic steering, %s send %d bytes form %s to %s",
|
||||||
_stream->str_stream_addr,
|
_stream->str_stream_addr,
|
||||||
evbuffer_get_length(inbuf),
|
evbuffer_get_length(inbuf),
|
||||||
@@ -1097,6 +1100,7 @@ static void __steering_stream_bev_readcb(struct bufferevent * bev, void * arg)
|
|||||||
bev == _stream->conn_fake_c->bev ? "conn_downstream" : "conn_upstream"
|
bev == _stream->conn_fake_c->bev ? "conn_downstream" : "conn_upstream"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
TFE_PROXY_STAT_INCREASE(stat_filed, evbuffer_get_length(inbuf));
|
||||||
struct evbuffer * outbuf = bufferevent_get_output(peer_conn->bev);
|
struct evbuffer * outbuf = bufferevent_get_output(peer_conn->bev);
|
||||||
evbuffer_add_buffer(outbuf, inbuf);
|
evbuffer_add_buffer(outbuf, inbuf);
|
||||||
}
|
}
|
||||||
@@ -1188,6 +1192,7 @@ void ssl_downstream_create_on_success(future_result_t * result, void * user)
|
|||||||
{
|
{
|
||||||
__conn_private_enable(_stream->conn_fake_c);
|
__conn_private_enable(_stream->conn_fake_c);
|
||||||
__conn_private_enable(_stream->conn_fake_s);
|
__conn_private_enable(_stream->conn_fake_s);
|
||||||
|
TFE_PROXY_STAT_INCREASE(STAT_STEERING_SSL_CONN, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -1749,6 +1754,7 @@ int tfe_stream_init_by_fds(struct tfe_stream * stream, evutil_socket_t fd_downst
|
|||||||
{
|
{
|
||||||
__conn_private_enable(_stream->conn_fake_s);
|
__conn_private_enable(_stream->conn_fake_s);
|
||||||
__conn_private_enable(_stream->conn_fake_c);
|
__conn_private_enable(_stream->conn_fake_c);
|
||||||
|
TFE_PROXY_STAT_INCREASE(STAT_STEERING_HTTP_CONN, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFE_PROXY_STAT_INCREASE(STAT_STREAM_TCP_PLAIN, 1);
|
TFE_PROXY_STAT_INCREASE(STAT_STREAM_TCP_PLAIN, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user