+clib_error_t *
+avf_op_config_rss_key (vlib_main_t * vm, avf_device_t * ad)
+{
+ int msg_len = sizeof (virtchnl_rss_key_t) + ad->rss_key_size - 1;
+ int i;
+ u8 msg[msg_len];
+ virtchnl_rss_key_t *rk;
+
+ clib_memset (msg, 0, msg_len);
+ rk = (virtchnl_rss_key_t *) msg;
+ rk->vsi_id = ad->vsi_id;
+ rk->key_len = ad->rss_key_size;
+ u32 seed = random_default_seed ();
+ for (i = 0; i < ad->rss_key_size; i++)
+ rk->key[i] = (u8) random_u32 (&seed);
+
+ return avf_send_to_pf (vm, ad, VIRTCHNL_OP_CONFIG_RSS_KEY, msg, msg_len, 0,
+ 0);
+}
+