two fixes. - allow conditional jumbo frame based on rx_max_pkt_len - fix mss size... 26/6626/1
authorMohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Wed, 3 May 2017 07:47:00 +0000 (08:47 +0100)
committerMohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Tue, 9 May 2017 16:46:44 +0000 (17:46 +0100)
Change-Id: I47b7775445bc4ba647f9da9edafc4b255082e926
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
examples/l4fwd/main.c
examples/l4fwd/parse.c
examples/l4fwd/port.h
lib/libtle_l4p/tcp_rxtx.c

index 37bd03e..7613a95 100644 (file)
@@ -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,
        },
 };
 
index ac11517..4850312 100644 (file)
@@ -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);
index bc13dca..04f3ec2 100644 (file)
@@ -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)
index d4b6fdd..ceaa2bc 100644 (file)
@@ -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;