opencomputeproject / SAI

Switch Abstraction Interface
Other
471 stars 475 forks source link

SAI L3 Intf 0 MTU size #856

Open loshihyu opened 6 years ago

loshihyu commented 6 years ago

Hi,

Current SAI, e.g.: v3.1.3.4, L3 Intf 0 is with fixed size 1514, and ASIC is only able to forward L3 routing packets up to 1532 bytes (1514 + 14 bytes L2 header + 4 bytes FCS). Need fix to make it maximum value or configurable from SONiC.

root@SONiC-Inventec-d7032-100:/home/admin# bcmcmd "l3 intf show" l3 intf show Free L3INTF entries: 8188 Unit Intf VRF Group VLAN Source Mac MTU TTL Tunnel InnerVlan NATRealm

0 0 0 0 1 00:8c:fa:c7:b4:38 1514 0 0 0 0 <---- L3 Intf 0 interface 0 1 0 0 4094 00:8c:fa:c7:b4:38 9100 0 0 0 0
0 2 0 0 4093 00:8c:fa:c7:b4:38 9100 0 0 0 0

drivshell> root@SONiC-Inventec-d7032-100:/home/admin#

Thanks!

Wilson

prsunny commented 6 years ago

I think this MTU value can be fixed as 16536 (max value) when Vlan 1 router interface is created. This cannot be configured from Sonic. Note, In Sonic, only CPU port is part of Vlan 1

stcheng commented 6 years ago

I think this is not a SAI related question. Since SAI doesn't have the definition of the MTU of packets sent back to CPU. Could you move the issue towards SONiC websites?

loshihyu commented 6 years ago

Thanks for your follow-up Prince, ShuoTian!

The issue is about switch front-panel ports.

We are testing ip mtu with SONiC 201803 branch image on our Broadcom Tomahawk (bcm56960) d7032 switch. After changing ip_mtu to 9100, we saw SONiC "show interface status", e.g. Ethernet0, has 9100 ip_mtu size and "bcmcmd ps" shows 9122. The problem we hit is that only able to route and forward up to 1532 bytes packet. Refer to the following “* MTU of Routing Interface doesn't work” on test details.

The Broadcom ASIC L3 forwarding datapath mtu is capped by L3 Intf 0 1514 bytes mtu size. SAI creates this Intf 0.

Thanks!

Wilson

• MTU of Routing Interface doesn't work

[Test step and config]

Test Center TCA port sends L3 IP packets to switch d7032 front-panel port Ethernet0 and TCB receives from Ethernet4.

/etc/sonic/config_db.json "INTERFACE": { "Ethernet0|20.20.20.100/24": {}, "Ethernet4|10.10.10.100/24": {} },

[Test Result]

root@SONiC-Inventec-d7032-100:~# vi /etc/sonic/config_db.json

"PORT": { "Ethernet0": { "alias": "Ethernet0", "lanes": "1,2,3,4", "mtu":1500 }, "Ethernet4": { "alias": "Ethernet4", "lanes": "5,6,7,8", "mtu":1500 },

root@SONiC-Inventec-d7032-100:~# show interfaces status Command: intfutil status Interface Lanes Speed MTU Alias Oper Admin


Ethernet0 1,2,3,4 N/A 1500 Ethernet0 up up Ethernet4 5,6,7,8 N/A 1500 Ethernet4 up up

root@SONiC-Inventec-d7032-100:~# bcmcmd "ps" ps ena/ speed/ link auto STP lrn inter max cut loop port link Lns duplex scan neg? state pause discrd ops face frame thru? back ce0( 1) up 4 100G FD SW No Forward TX RX None F KR4 1522 No ce1( 2) up 4 100G FD SW No Forward TX RX None F KR4 1522 No

TCA sends traffic to TCB: size 63 drop 64 pass 1526 pass (correct) 1527 drop (correct)

root@SONiC-Inventec-d7032-100:~# vi /etc/sonic/config_db.json

"PORT": { "Ethernet0": { "alias": "Ethernet0", "lanes": "1,2,3,4", "mtu":9100 }, "Ethernet4": { "alias": "Ethernet4", "lanes": "5,6,7,8", "mtu":9100 },

root@SONiC-Inventec-d7032-100:~# show interfaces status Command: intfutil status Interface Lanes Speed MTU Alias Oper Admin


Ethernet0 1,2,3,4 N/A 9100 Ethernet0 up up Ethernet4 5,6,7,8 N/A 9100 Ethernet4 up up

root@SONiC-Inventec-d7032-100:~# bcmcmd "ps" ps ena/ speed/ link auto STP lrn inter max cut loop port link Lns duplex scan neg? state pause discrd ops face frame thru? back ce0( 1) up 4 100G FD SW No Forward TX RX None F KR4 9122 No ce1( 2) up 4 100G FD SW No Forward TX RX None F KR4 9122 No

TCA sends traffic to TCB: size 1532 pass 1533 drop (failed!!) 9100 drop (failed!!)