20180730:
TCP_REPAIR_OPT中mss取syn,syn/ack中最小值,而非单纯src_mss
This commit is contained in:
19
kni.c
19
kni.c
@@ -41,7 +41,7 @@ struct kni_switch_info g_kni_switch_info;
|
||||
|
||||
char g_kni_cardname[KNI_CARD_NUM][KNI_CONF_MAXLEN];
|
||||
int g_kni_threadseq[KNI_MAX_THREADNUM];
|
||||
const char *g_kni_fs2_name[FS2_COLUMN_NUM] ={"RECV_PKTS","WRITE_PKTS","READ_PKTS","SEND_PKTS","BMD_IP","BMD_DOMAIN","HTTP_PKTS","SSL_PKTS"};
|
||||
const char *g_kni_fs2_name[FS2_COLUMN_NUM] ={"RECV_PKTS","WRITE_PKTS","READ_PKTS","SEND_PKTS","BMD_IP","BMD_DOMAIN","HTTP_PKTS","SSL_PKTS","DROP_PKTS"};
|
||||
|
||||
extern int g_iThreadNum;
|
||||
|
||||
@@ -92,14 +92,14 @@ int kni_set_filestate2(int thread_seq,int colum_index,int bytes,int pktnum)
|
||||
int kni_filestate2_init()
|
||||
{
|
||||
int i=0;
|
||||
int j=0;
|
||||
// int j=0;
|
||||
int value=1;
|
||||
unsigned int fs2_sport;
|
||||
char fs2_filename[KNI_MAX_BUFLEN]={0};
|
||||
char fs2_sip[KNI_MAX_BUFLEN]={0};
|
||||
|
||||
MESA_load_profile_string_def((char*)KNI_CONF_FILENAME,(char*)KNI_CONF_MODE,(char*)"filestat2_filename",fs2_filename,KNI_MAX_BUFLEN,(char*)"./log/kni_fs2.log");
|
||||
MESA_load_profile_string_def((char*)KNI_CONF_FILENAME,(char*)KNI_CONF_MODE,(char*)"filestat2_sip",fs2_sip,KNI_MAX_BUFLEN,(char*)"10.127.208.15");
|
||||
MESA_load_profile_string_def((char*)KNI_CONF_FILENAME,(char*)KNI_CONF_MODE,(char*)"filestat2_sip",fs2_sip,KNI_MAX_BUFLEN,(char*)"192.168.11.241");
|
||||
MESA_load_profile_uint_def((char*)KNI_CONF_FILENAME,(char*)KNI_CONF_MODE,(char*)"filestat2_sport",(unsigned int*)&fs2_sport,8125);
|
||||
|
||||
g_kni_fs2_info.handler=FS_create_handle();
|
||||
@@ -253,6 +253,7 @@ static int kni_send_fds(int socket, int *fds, int n,int protocol)
|
||||
struct cmsghdr *cmsg;
|
||||
char buf[CMSG_SPACE(n * sizeof(int))], dup[256]={0};
|
||||
memset(buf, 0, sizeof(buf));
|
||||
// struct iovec io = { .iov_base = &dup, .iov_len = sizeof(struct kni_tlv_info) };
|
||||
struct iovec io = { .iov_base = &dup, .iov_len = sizeof(dup) };
|
||||
|
||||
|
||||
@@ -412,7 +413,7 @@ return:
|
||||
*********************************************************************************************************************/
|
||||
char tun_write_data(int fd,char* send_buf,int send_buflen,struct streaminfo* pstream,int thread_seq)
|
||||
{
|
||||
kni_set_filestate2(thread_seq,FS2_COLUME_WRITE,0,1);
|
||||
|
||||
|
||||
char ret=APP_STATE_DROPPKT|APP_STATE_GIVEME;
|
||||
int succ_sendlen=0;
|
||||
@@ -420,6 +421,7 @@ char tun_write_data(int fd,char* send_buf,int send_buflen,struct streaminfo* pst
|
||||
succ_sendlen = write(fd, send_buf,send_buflen);
|
||||
if((succ_sendlen<0)&&(pstream!=NULL))
|
||||
{
|
||||
kni_set_filestate2(thread_seq,FS2_COLUME_DROPPKT,0,1);
|
||||
MESA_kill_tcp(pstream,(const void*)send_buf);
|
||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"write() error %d, %s",errno,strerror(errno));
|
||||
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
||||
@@ -429,6 +431,7 @@ char tun_write_data(int fd,char* send_buf,int send_buflen,struct streaminfo* pst
|
||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"succ_sendlen is %d,send_buflen is %d",succ_sendlen,send_buflen);
|
||||
}
|
||||
|
||||
kni_set_filestate2(thread_seq,FS2_COLUME_WRITE,0,1);
|
||||
kni_debug_info_v4((char*)KNI_MODULE_WRITETUN,KNI_FLAG_SSL,(struct ip*)send_buf);
|
||||
|
||||
return ret;
|
||||
@@ -1098,7 +1101,7 @@ int tcprepair_set_state(int sk,struct kni_tcp_state* tcp)
|
||||
onr++;
|
||||
|
||||
opts[onr].opt_code = TCPOPT_MAXSEG;
|
||||
opts[onr].opt_val = tcp->mss_src;
|
||||
opts[onr].opt_val = (tcp->mss_src<tcp->mss_dst)?tcp->mss_src:tcp->mss_dst;
|
||||
onr++;
|
||||
|
||||
if((tcp->sack_src)&&(tcp->sack_dst))
|
||||
@@ -1831,11 +1834,13 @@ extern "C" char kni_tcpall_entry(const struct streaminfo* pstream,void** pme,int
|
||||
kni_free_pmeinfo(pme);
|
||||
*pme=NULL;
|
||||
}
|
||||
/*
|
||||
/*
|
||||
|
||||
if(ret&APP_STATE_DROPPKT)
|
||||
{
|
||||
kni_set_filestate2(thread_seq,FS2_COLUME_DROP,0,1);
|
||||
kni_set_filestate2(thread_seq,FS2_COLUME_DROPPKT,0,1);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
kni_set_filestate2(thread_seq,FS2_COLUME_FWD,0,1);
|
||||
|
||||
Reference in New Issue
Block a user