diff options
author | Stanislav Zaikin <stanislav.zaikin@46labs.com> | 2023-06-22 16:46:01 +0200 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2023-06-27 11:42:42 +0000 |
commit | 7f27ed666ecc4cf5db7ca76b3eba40f7d9092909 (patch) | |
tree | 75e381786744ab93a08a8759f0d7859e806cd017 /src/plugins/af_xdp/test_api.c | |
parent | 5fe1cf80cad75a2e08450303410fb484cdc708ad (diff) |
af_xdp: create_api_v3 without namespace keyword
Namespace keyword is reverved c++ word, so it's not possible to include
vapi header for af_xdp plugin and use it.
Type: fix
Signed-off-by: Stanislav Zaikin <stanislav.zaikin@46labs.com>
Change-Id: I42a0e0a89ff2c407090d3c18c1bc5a5605ddf032
Diffstat (limited to 'src/plugins/af_xdp/test_api.c')
-rw-r--r-- | src/plugins/af_xdp/test_api.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/plugins/af_xdp/test_api.c b/src/plugins/af_xdp/test_api.c index 46ba6f100ee..581697e341d 100644 --- a/src/plugins/af_xdp/test_api.c +++ b/src/plugins/af_xdp/test_api.c @@ -126,6 +126,40 @@ api_af_xdp_create_v2 (vat_main_t *vam) return ret; } +/* af_xdp create v2 API */ +static int +api_af_xdp_create_v3 (vat_main_t *vam) +{ + vl_api_af_xdp_create_v3_t *mp; + af_xdp_create_if_args_t args; + int ret; + + if (!unformat_user (vam->input, unformat_af_xdp_create_if_args, &args)) + { + clib_warning ("unknown input `%U'", format_unformat_error, vam->input); + return -99; + } + + M (AF_XDP_CREATE, mp); + + snprintf ((char *) mp->host_if, sizeof (mp->host_if), "%s", + args.linux_ifname ?: ""); + snprintf ((char *) mp->name, sizeof (mp->name), "%s", args.name ?: ""); + snprintf ((char *) mp->netns, sizeof (mp->netns), "%s", args.netns ?: ""); + mp->rxq_num = args.rxq_num; + mp->rxq_size = args.rxq_size; + mp->txq_size = args.txq_size; + mp->mode = api_af_xdp_mode (args.mode); + if (args.flags & AF_XDP_CREATE_FLAGS_NO_SYSCALL_LOCK) + mp->flags |= AF_XDP_API_FLAGS_NO_SYSCALL_LOCK; + snprintf ((char *) mp->prog, sizeof (mp->prog), "%s", args.prog ?: ""); + + S (mp); + W (ret); + + return ret; +} + /* af_xdp-create reply handler */ static void vl_api_af_xdp_create_reply_t_handler (vl_api_af_xdp_create_reply_t * mp) @@ -162,6 +196,24 @@ vl_api_af_xdp_create_v2_reply_t_handler (vl_api_af_xdp_create_v2_reply_t *mp) vam->regenerate_interface_table = 1; } +/* af_xdp-create v3 reply handler */ +static void +vl_api_af_xdp_create_v3_reply_t_handler (vl_api_af_xdp_create_v2_reply_t *mp) +{ + vat_main_t *vam = af_xdp_test_main.vat_main; + i32 retval = mp->retval; + + if (retval == 0) + { + fformat (vam->ofp, "created af_xdp with sw_if_index %d\n", + mp->sw_if_index); + } + + vam->retval = retval; + vam->result_ready = 1; + vam->regenerate_interface_table = 1; +} + /* af_xdp delete API */ static int api_af_xdp_delete (vat_main_t * vam) |