Skip to content

Commit 8c32025

Browse files
dmarionkmonendra
authored andcommitted
octeon: add support for changing RSS key
Change-Id: I855c394262b275d1f98d9bce1a3cd4a2411d88f7 Type: improvement Signed-off-by: Damjan Marion <damarion@cisco.com> Reviewed-on: https://sj1git1.cavium.com/c/IP/SW/toolkits/vpp/+/162763 Tested-by: sa_ip-toolkits-Jenkins <sa_ip-toolkits-jenkins@marvell.com> Reviewed-by: Monendra Singh Kushwaha <kmonendra@marvell.com> (cherry picked from commit 5a458f4fc5857461d6a54ca28679e630a9c3a60d)
1 parent 8a8f6b1 commit 8c32025

2 files changed

Lines changed: 29 additions & 8 deletions

File tree

src/plugins/dev_octeon/init.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,16 @@ oct_init_nix (vlib_main_t *vm, vnet_dev_t *dev)
360360
.tx_offloads = {
361361
.ip4_cksum = 1,
362362
},
363+
364+
},
365+
.default_rss_key = {
366+
.key = {
367+
0xfe, 0xed, 0x0b, 0xad, 0xfe, 0xed, 0x0b, 0xad, 0xad, 0x0b, 0xed, 0xfe,
368+
0xad, 0x0b, 0xed, 0xfe, 0x13, 0x57, 0x9b, 0xef, 0x24, 0x68, 0xac, 0x0e,
369+
0x91, 0x72, 0x53, 0x11, 0x82, 0x64, 0x20, 0x44, 0x12, 0xef, 0x34, 0xcd,
370+
0x56, 0xbc, 0x78, 0x9a, 0x9a, 0x78, 0xbc, 0x56, 0xcd, 0x34, 0xef, 0x12,
371+
},
372+
.length = 48,
363373
},
364374
.ops = {
365375
.init = oct_port_init,

src/plugins/dev_octeon/port.c

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,6 @@ VLIB_REGISTER_LOG_CLASS (oct_log, static) = {
2424
.subclass_name = "port",
2525
};
2626

27-
static const u8 default_rss_key[] = {
28-
0xfe, 0xed, 0x0b, 0xad, 0xfe, 0xed, 0x0b, 0xad, 0xad, 0x0b, 0xed, 0xfe,
29-
0xad, 0x0b, 0xed, 0xfe, 0x13, 0x57, 0x9b, 0xef, 0x24, 0x68, 0xac, 0x0e,
30-
0x91, 0x72, 0x53, 0x11, 0x82, 0x64, 0x20, 0x44, 0x12, 0xef, 0x34, 0xcd,
31-
0x56, 0xbc, 0x78, 0x9a, 0x9a, 0x78, 0xbc, 0x56, 0xcd, 0x34, 0xef, 0x12
32-
};
33-
3427
static const u64 rxq_cfg =
3528
ROC_NIX_LF_RX_CFG_DIS_APAD | ROC_NIX_LF_RX_CFG_IP6_UDP_OPT |
3629
ROC_NIX_LF_RX_CFG_L2_LEN_ERR | ROC_NIX_LF_RX_CFG_DROP_RE |
@@ -250,7 +243,7 @@ oct_port_init (vlib_main_t *vm, vnet_dev_port_t *port)
250243
return oct_roc_err (dev, rrv, "roc_nix_rss_default_setup() failed");
251244
}
252245

253-
roc_nix_rss_key_set (nix, default_rss_key);
246+
roc_nix_rss_key_set (nix, port->rss_key.key);
254247

255248
cp->npc.roc_nix = nix;
256249
cp->npc.flow_prealloc_size = OCT_FLOW_PREALLOC_SIZE;
@@ -815,6 +808,19 @@ oct_op_config_max_rx_len (vlib_main_t *vm, vnet_dev_port_t *port,
815808
return rv;
816809
}
817810

811+
vnet_dev_rv_t
812+
oct_op_config_set_rss_key (vlib_main_t *vm, vnet_dev_port_t *port,
813+
vnet_dev_rss_key_t *k)
814+
{
815+
vnet_dev_t *dev = port->dev;
816+
oct_device_t *cd = vnet_dev_get_data (dev);
817+
vnet_dev_rv_t rv = VNET_DEV_OK;
818+
819+
roc_nix_rss_key_set (cd->nix, k->key);
820+
821+
return rv;
822+
}
823+
818824
vnet_dev_rv_t
819825
oct_port_cfg_change_validate (vlib_main_t *vm, vnet_dev_port_t *port,
820826
vnet_dev_port_cfg_change_req_t *req)
@@ -833,6 +839,7 @@ oct_port_cfg_change_validate (vlib_main_t *vm, vnet_dev_port_t *port,
833839
case VNET_DEV_PORT_CFG_CHANGE_PRIMARY_HW_ADDR:
834840
case VNET_DEV_PORT_CFG_ADD_SECONDARY_HW_ADDR:
835841
case VNET_DEV_PORT_CFG_REMOVE_SECONDARY_HW_ADDR:
842+
case VNET_DEV_PORT_CFG_SET_RSS_KEY:
836843
break;
837844

838845
case VNET_DEV_PORT_CFG_ADD_RX_FLOW:
@@ -878,6 +885,10 @@ oct_port_cfg_change (vlib_main_t *vm, vnet_dev_port_t *port,
878885
rv = oct_op_config_max_rx_len (vm, port, req->max_rx_frame_size);
879886
break;
880887

888+
case VNET_DEV_PORT_CFG_SET_RSS_KEY:
889+
rv = oct_op_config_set_rss_key (vm, port, &req->rss_key);
890+
break;
891+
881892
case VNET_DEV_PORT_CFG_ADD_RX_FLOW:
882893
case VNET_DEV_PORT_CFG_DEL_RX_FLOW:
883894
case VNET_DEV_PORT_CFG_GET_RX_FLOW_COUNTER:

0 commit comments

Comments
 (0)