linux/drivers/net/ethernet/netronome/nfp
John Hurley 29a5dcae27 nfp: flower: offload phys port MTU change
Trigger a port mod message to request an MTU change on the NIC when any
physical port representor is assigned a new MTU value. The driver waits
10 msec for an ack that the FW has set the MTU. If no ack is received the
request is rejected and an appropriate warning flagged.

Rather than maintain an MTU queue per repr, one is maintained per app.
Because the MTU ndo is protected by the rtnl lock, there can never be
contention here. Portmod messages from the NIC are also protected by
rtnl so we first check if the portmod is an ack and, if so, handle outside
rtnl and the cmsg work queue.

Acks are detected by the marking of a bit in a portmod response. They are
then verfied by checking the port number and MTU value expected by the
app. If the expected MTU is 0 then no acks are currently expected.

Also, ensure that the packet headroom reserved by the flower firmware is
considered when accepting an MTU change on any repr.

Signed-off-by: John Hurley <john.hurley@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-03-30 10:18:55 -04:00
..
bpf nfp: modify app MTU setting callbacks 2018-03-30 10:18:54 -04:00
flower nfp: flower: offload phys port MTU change 2018-03-30 10:18:55 -04:00
nfpcore nfp: add Makefiles to all directories 2018-02-22 15:22:50 -05:00
nic nfp: add Makefiles to all directories 2018-02-22 15:22:50 -05:00
Makefile nfp: add TLV capabilities to the BAR 2018-01-19 15:44:18 -05:00
nfp_app_nic.c nfp: separate app vNIC init/clean from alloc/free 2017-09-03 21:22:04 -07:00
nfp_app.c nfp: improve app not found message 2018-01-19 15:44:18 -05:00
nfp_app.h nfp: modify app MTU setting callbacks 2018-03-30 10:18:54 -04:00
nfp_asm.c nfp: bpf: fix immed relocation for larger offsets 2018-02-08 11:59:50 +01:00
nfp_asm.h nfp: bpf: add helpers for updating immediate instructions 2018-01-14 23:36:30 +01:00
nfp_devlink.c nfp: register devlink after app is created 2018-01-19 15:44:18 -05:00
nfp_hwmon.c nfp: add hwmon support 2017-05-30 11:27:06 -04:00
nfp_main.c nfp: advertise firmware for mixed 10G/25G mode 2018-02-22 15:22:50 -05:00
nfp_main.h nfp: debug dump ethtool ops 2017-12-05 15:01:01 -05:00
nfp_net_common.c nfp: modify app MTU setting callbacks 2018-03-30 10:18:54 -04:00
nfp_net_ctrl.c nfp: fix TLV offset calculation 2018-02-02 19:08:20 -05:00
nfp_net_ctrl.h nfp: standardize FW header whitespace 2018-02-16 16:24:24 -05:00
nfp_net_debugdump.c nfp: fix fw dump handling of absolute rtsym size 2018-01-23 10:12:01 -05:00
nfp_net_debugfs.c ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
nfp_net_ethtool.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-17 00:10:42 -05:00
nfp_net_main.c nfp: read ME frequency from vNIC ctrl memory 2018-01-19 15:44:18 -05:00
nfp_net_repr.c nfp: modify app MTU setting callbacks 2018-03-30 10:18:54 -04:00
nfp_net_repr.h nfp: protect each repr pointer individually with RCU 2018-01-19 15:44:18 -05:00
nfp_net_sriov.c nfp: inform the VF driver needs to be restarted after changing the MAC 2017-10-28 18:59:48 +09:00
nfp_net_sriov.h nfp: add basic SR-IOV ndo functions 2017-08-25 19:24:58 -07:00
nfp_net.h nfp: fix kdoc warnings on nested structures 2018-02-06 11:43:58 -05:00
nfp_netvf_main.c nfp: read ME frequency from vNIC ctrl memory 2018-01-19 15:44:18 -05:00
nfp_port.c nfp: forbid disabling hw-tc-offload on representors while offload active 2018-02-08 10:01:27 -05:00
nfp_port.h nfp: forbid disabling hw-tc-offload on representors while offload active 2018-02-08 10:01:27 -05:00