Expose port function commands to enable / disable RoCE, this is used to control the port RoCE device capabilities. When RoCE is disabled for a function of the port, function cannot create any RoCE specific resources (e.g GID table). It also saves system memory utilization. For example disabling RoCE enable a VF/SF saves 1 Mbytes of system memory per function. Example of a PCI VF port which supports function configuration: Set RoCE of the VF's port function. $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev enp6s0pf0vf1 flavour pcivf pfnum 0 vfnum 1 function: hw_addr 00:00:00:00:00:00 roce enable $ devlink port function set pci/0000:06:00.0/2 roce disable $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev enp6s0pf0vf1 flavour pcivf pfnum 0 vfnum 1 function: hw_addr 00:00:00:00:00:00 roce disable
Showing the changes to include/uapi (1 of 4 files). Show all
Unified · Split
| @@ -658,11 +658,21 @@ enum devlink_resource_unit { · 657 unmodified lines | ||
| 658 | 658 | DEVLINK_RESOURCE_UNIT_ENTRY, |
| 659 | 659 | }; |
| 660 | 660 | |
| 661 | +enum devlink_port_fn_attr_cap { | |
| 662 | + DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT, | |
| 663 | + | |
| 664 | + /* Add new caps above */ | |
| 665 | + __DEVLINK_PORT_FN_ATTR_CAPS_MAX, | |
| 666 | +}; | |
| 667 | + | |
| 668 | +#define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT) | |
| 669 | + | |
| 661 | 670 | enum devlink_port_function_attr { |
| 662 | 671 | DEVLINK_PORT_FUNCTION_ATTR_UNSPEC, |
| 663 | 672 | DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */ |
| 664 | 673 | DEVLINK_PORT_FN_ATTR_STATE, /* u8 */ |
| 665 | 674 | DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */ |
| 675 | + DEVLINK_PORT_FN_ATTR_CAPS, /* bitfield32 */ | |
| 666 | 676 | |
| 667 | 677 | __DEVLINK_PORT_FUNCTION_ATTR_MAX, |
| 668 | 678 | DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1 |