diff options
author | Dastin Wilski <dastinx.wilski@intel.com> | 2022-02-03 09:19:01 +0000 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2022-02-16 16:09:37 +0000 |
commit | b3919ca67a216f45d886b27658c120b7609c44a5 (patch) | |
tree | 6c2cc8c7c73c5ef0d9435733aa8ee918cd2582cc | |
parent | 32fd89b608a78cc1810fa666f06575483fa86975 (diff) |
af_xdp: change flag passed to bpf_set_link_xdp_fd
Originally XDP_FLAGS_REPLACE was passed to the function.
For kernels not defining this macro (for example 5.4) in if_link.h vpp
sets it to 0.
If kernel has this macro problem appears, replace flag requires
specifying the program to be replaced. bpf_set_link_xdp_fd wraps
around __bpf_set_link_xdp_fd_replace and passes 0 as old_fd, it leads to
an error while assessing for replacement (if 0 is passed
there is no assessing for replacement).
To address this issue no flag is passed to the function, only 0.
Type: improvement
Signed-off-by: Dastin Wilski <dastin.wilski@gmail.com>
Change-Id: I3689ce7eb8c71c699f0e589111929979c2bbe213
-rw-r--r-- | src/plugins/af_xdp/device.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/plugins/af_xdp/device.c b/src/plugins/af_xdp/device.c index 87d1251c229..d107a39b199 100644 --- a/src/plugins/af_xdp/device.c +++ b/src/plugins/af_xdp/device.c @@ -212,10 +212,7 @@ af_xdp_load_program (af_xdp_create_if_args_t * args, af_xdp_device_t * ad) goto err0; } -#ifndef XDP_FLAGS_REPLACE -#define XDP_FLAGS_REPLACE 0 -#endif - if (bpf_set_link_xdp_fd (ad->linux_ifindex, fd, XDP_FLAGS_REPLACE)) + if (bpf_set_link_xdp_fd (ad->linux_ifindex, fd, 0)) { args->rv = VNET_API_ERROR_SYSCALL_ERROR_6; args->error = |