新增MAX_BURST_PKTLEN和MIN_BURST_PKTLEN两个环境变量控制放大包的长度范围

This commit is contained in:
yangwei
2019-09-03 17:02:15 +08:00
parent c40d566995
commit 95f324d4de
4 changed files with 27 additions and 4 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
tcpburst
.vscode
.DS_Store
GPATH
GRTAGS
GTAGS

View File

@@ -1,3 +1,3 @@
make clean
make distclean
rm tcpburst clean
rm clean

View File

@@ -1565,7 +1565,7 @@ static const u_char *find_iphdr(const u_char *pkt, size_t pktlen, const u_char *
return -1;
}
if(pktlen > TCP_BURST_MTU){
if(pktlen > TCP_BURST_MTU || pktlen > options.max_burst_pkt_len || pktlen < options.min_burst_pkt_len){
//fprintf(stderr, "Tcpburst error! Packet too long:%d, current MTU is:%d\n", pktlen, TCP_BURST_MTU);
return -1;
}
@@ -1960,10 +1960,28 @@ init(void)
options.pkt_distance = 0;
options.driver_mode = "pcap"; /* default mode is pcap */
options.encap_cfg_file = NULL;
char *env_var = getenv("MAX_BURST_PKTLEN");
if(env_var != NULL)
{
options.max_burst_pkt_len = atoi(env_var);
}
else
{
options.max_burst_pkt_len = TCP_BURST_MTU;
}
env_var = getenv("MIN_BURST_PKTLEN");
if(env_var != NULL)
{
options.min_burst_pkt_len = atoi(env_var);
}
else
{
options.min_burst_pkt_len = 0;
}
#endif
if (fcntl(STDERR_FILENO, F_SETFL, O_NONBLOCK) < 0)
warnx("Unable to set STDERR to non-blocking: %s", strerror(errno));
if (fcntl(STDERR_FILENO, F_SETFL, O_NONBLOCK) < 0)
warnx("Unable to set STDERR to non-blocking: %s", strerror(errno));
}
/**

View File

@@ -120,6 +120,8 @@ struct tcpreplay_opt_s {
long cpu_mask;
char *encap_cfg_file; /* <20>ײ<EFBFBD><D7B2><EFBFBD>װģʽ */
int max_burst_pkt_len;
int min_burst_pkt_len;
#endif
};