From 4fa0b9b124181ce4f42368ba882ca3474abf8b10 Mon Sep 17 00:00:00 2001 From: nilsalon100 <77840358+nilsalon100@users.noreply.github.com> Date: Wed, 24 Jan 2024 11:51:48 +0100 Subject: [PATCH] txrx.c - added function and flag for defining socket prio --- src/txrx.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/txrx.c b/src/txrx.c index d2762be..9eb712d 100644 --- a/src/txrx.c +++ b/src/txrx.c @@ -132,6 +132,8 @@ static struct argp_option options[] = { {"wakeup", 'w', 0, 0, "enable need_wakeup"}, {"vlan-prio", 'q', "NUM", 0, "packet vlan priority, also socket priority\n" " Def: 0 | Min: 0 | Max: 7"}, + {"socket-prio", 'g', "NUM", 0, "packet socket priority\n" + " Def: 0 | Min: 0 | Max: 15"}, /* Reserved: u / w */ {0,0,0,0, "TX control:" }, @@ -188,6 +190,19 @@ static error_t parser(int key, char *arg, struct argp_state *state) #endif opt->vlan_prio = opt->socket_prio * 32; break; + case 'g': + len = strlen(arg); + res = strtol((const char *)arg, &str_end, 10); + if (errno || res < 0 || res >= 15 || str_end != &arg[len]) + exit_with_error("Invalid queue number/socket priority. Check --help"); + opt->socket_prio = (uint32_t)res; + //printf("\n%d\n", opt->socket_prio); + //#ifdef WITH_XDP + if (opt->socket_mode == MODE_AFXDP) + exit_with_error("AF_XDP does not support setting socket priority."); + //#endif + //opt->vlan_prio = opt->socket_prio * 32; + break; case 'X': opt->socket_mode = MODE_AFXDP; break;