net/enic: determine max egress packet size and max MTU
authorJohn Daley <johndale@cisco.com>
Fri, 24 Jun 2016 22:29:27 +0000 (15:29 -0700)
committerBruce Richardson <bruce.richardson@intel.com>
Wed, 29 Jun 2016 09:54:46 +0000 (11:54 +0200)
commitbb34ffb848a01e2abe7300e9655ada109ffab62a
tree1b36759179d0144f1fe9c1707fef8fb167c35287
parent9c9def9bfa37421f150387ee6bc78b91a8df2ea9
net/enic: determine max egress packet size and max MTU

Pull in common VNIC code which enables querying for max egress
packet size with newer firmware via a device command. If the
field is non-zero, it is the max egress packet size. If it is
0, the default value (9022) can safely be assumed. The value
for 1300 series VICS using firmware versions >= 3.1.2 for blade
series and >= 2.0.13 for rack series servers is 9208.

Tx buffers can be emitted only if they are less than the max egress
packet size regardless of the MTU setting (the MTU is advisory).
The max egress packet size can used to determine the upper limit
of the MTU since the enic can also receive packets of size greater
than max egress packet size. A max_mtu variable is added with
a value of max egress packet size minus L2 header size.

The default MTU is set via the CIMC/UCSM management interface and
currently allows value up to 9000. If the value is changed, the
host must be reboot. To avoid the reboot and allow MTU values
up to the max capability of the NIC, MTU update capability will
be added with a max value capped by max_mtu.

Signed-off-by: John Daley <johndale@cisco.com>
drivers/net/enic/base/vnic_enet.h
drivers/net/enic/enic.h
drivers/net/enic/enic_ethdev.c
drivers/net/enic/enic_res.c
drivers/net/enic/enic_res.h