From 36d90e3aa7ad9a72f7acbefa4d409a71d78bfd25 Mon Sep 17 00:00:00 2001 From: Mohammad Abdul Awal Date: Wed, 3 May 2017 08:47:00 +0100 Subject: two fixes. - allow conditional jumbo frame based on rx_max_pkt_len - fix mss size for rx_synack Change-Id: I47b7775445bc4ba647f9da9edafc4b255082e926 Signed-off-by: Mohammad Abdul Awal --- examples/l4fwd/main.c | 3 +-- examples/l4fwd/parse.c | 2 +- examples/l4fwd/port.h | 2 ++ lib/libtle_l4p/tcp_rxtx.c | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/l4fwd/main.c b/examples/l4fwd/main.c index 37bd03e..7613a95 100644 --- a/examples/l4fwd/main.c +++ b/examples/l4fwd/main.c @@ -68,9 +68,8 @@ static char proto_name[3][10] = {"udp", "tcp", ""}; static const struct rte_eth_conf port_conf_default = { .rxmode = { - .max_rx_pkt_len = ETHER_MAX_VLAN_FRAME_LEN, .hw_vlan_strip = 1, - .jumbo_frame = 1, + .jumbo_frame = 0, }, }; diff --git a/examples/l4fwd/parse.c b/examples/l4fwd/parse.c index ac11517..4850312 100644 --- a/examples/l4fwd/parse.c +++ b/examples/l4fwd/parse.c @@ -309,7 +309,7 @@ parse_netbe_arg(struct netbe_port *prt, const char *arg, rte_cpuset_t *pcpu) union parse_val val[RTE_DIM(hndl)]; memset(val, 0, sizeof(val)); - val[2].u64 = ETHER_MAX_VLAN_FRAME_LEN - ETHER_CRC_LEN; + val[2].u64 = ETHER_MAX_LEN - ETHER_CRC_LEN; rc = parse_kvargs(arg, keys_man, RTE_DIM(keys_man), keys_opt, RTE_DIM(keys_opt), hndl, val); diff --git a/examples/l4fwd/port.h b/examples/l4fwd/port.h index bc13dca..04f3ec2 100644 --- a/examples/l4fwd/port.h +++ b/examples/l4fwd/port.h @@ -181,6 +181,8 @@ port_init(struct netbe_port *uprt, uint32_t proto) port_conf.rxmode.hw_ip_checksum = 1; } port_conf.rxmode.max_rx_pkt_len = uprt->mtu + ETHER_CRC_LEN; + if (port_conf.rxmode.max_rx_pkt_len > ETHER_MAX_LEN) + port_conf.rxmode.jumbo_frame = 1; rc = update_rss_conf(uprt, &dev_info, &port_conf, proto); if (rc != 0) diff --git a/lib/libtle_l4p/tcp_rxtx.c b/lib/libtle_l4p/tcp_rxtx.c index d4b6fdd..ceaa2bc 100644 --- a/lib/libtle_l4p/tcp_rxtx.c +++ b/lib/libtle_l4p/tcp_rxtx.c @@ -1538,7 +1538,7 @@ rx_synack(struct tle_tcp_stream *s, uint32_t ts, uint32_t state, s->tcb.so = so; s->tcb.snd.una = s->tcb.snd.nxt; - s->tcb.snd.mss = so.mss; + s->tcb.snd.mss = calc_smss(so.mss, &s->tx.dst); s->tcb.snd.wnd = si->wnd << so.wscale; s->tcb.snd.wu.wl1 = si->seq; s->tcb.snd.wu.wl2 = si->ack; -- cgit 1.2.3-korg