@@ -5,7 +5,7 @@ lib_dir=$(dirname $0)/../../../net/forwarding
ALL_TESTS="fw_flash_test params_test regions_test reload_test \
netns_reload_test resource_test dev_info_test \
- empty_reporter_test dummy_reporter_test"
+ empty_reporter_test dummy_reporter_test devlink_port_add_test"
NUM_NETIFS=0
source $lib_dir/lib.sh
@@ -507,6 +507,76 @@ dummy_reporter_test()
log_test "dummy reporter test"
}
+function_state_get()
+{
+ local name=$1
+
+ cmd_jq "devlink port show $DL_HANDLE/$USR_SF_PORT_INDEX -j" \
+ " .[][].function.$1"
+}
+
+devlink_port_add_test()
+{
+ RET=0
+ USR_PF_PORT_INDEX=600
+ USR_PFNUM_A=2
+ USR_PFNUM_B=3
+ USR_SF_PORT_INDEX=601
+ USR_SFNUM_A=44
+ USR_SFNUM_B=55
+
+ devlink port add $DL_HANDLE flavour pcipf pfnum $USR_PFNUM_A
+ check_err $? "Failed PF port addition"
+
+ devlink port show
+ check_err $? "Failed PF port show"
+
+ devlink port add $DL_HANDLE flavour pcisf pfnum $USR_PFNUM_A
+ check_err $? "Failed SF port addition"
+
+ devlink port add $DL_HANDLE flavour pcisf pfnum $USR_PFNUM_A \
+ sfnum $USR_SFNUM_A
+ check_err $? "Failed SF port addition"
+
+ devlink port add $DL_HANDLE flavour pcipf pfnum $USR_PFNUM_B
+ check_err $? "Failed second PF port addition"
+
+ devlink port add $DL_HANDLE/$USR_SF_PORT_INDEX flavour pcisf \
+ pfnum $USR_PFNUM_B sfnum $USR_SFNUM_B
+ check_err $? "Failed SF port addition"
+
+ devlink port show
+ check_err $? "Failed PF port show"
+
+ state=$(function_state_get "state")
+ check_err $? "Failed to get function state"
+ [ "$state" == "inactive" ]
+ check_err $? "Unexpected function state $state"
+
+ state=$(function_state_get "opstate")
+ check_err $? "Failed to get operational state"
+ [ "$state" == "detached" ]
+ check_err $? "Unexpected function opstate $opstate"
+
+ devlink port function set $DL_HANDLE/$USR_SF_PORT_INDEX state active
+ check_err $? "Failed to set state"
+
+ state=$(function_state_get "state")
+ check_err $? "Failed to get function state"
+ [ "$state" == "active" ]
+ check_err $? "Unexpected function state $state"
+
+ state=$(function_state_get "opstate")
+ check_err $? "Failed to get operational state"
+ [ "$state" == "attached" ]
+ check_err $? "Unexpected function opstate $opstate"
+
+ devlink port del $DL_HANDLE/$USR_SF_PORT_INDEX
+ check_err $? "Failed SF port deletion"
+
+ log_test "port_add test"
+}
+
setup_prepare()
{
modprobe netdevsim
Add tests for PCI PF and SF port add, configure and delete using user specified port index and sfumber; and also using auto generated port index. Signed-off-by: Parav Pandit <parav@nvidia.com> --- .../drivers/net/netdevsim/devlink.sh | 72 ++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-)