@@ -91,11 +91,6 @@ static void run_non_privileged_preconfig(const char *ifname,
91
91
92
92
static struct xsk_umem * create_umem_non_privileged (int sock_fd )
93
93
{
94
- struct xsk_umem_config config = {
95
- .fill_size = XSK_RING_PROD__DEFAULT_NUM_DESCS ,
96
- .comp_size = XSK_RING_CONS__DEFAULT_NUM_DESCS ,
97
- .frame_size = XSK_UMEM__DEFAULT_FRAME_SIZE ,
98
- };
99
94
struct xsk_umem * umem = NULL ;
100
95
struct xsk_ring_cons cq ;
101
96
struct xsk_ring_prod fq ;
@@ -107,16 +102,29 @@ static struct xsk_umem *create_umem_non_privileged(int sock_fd)
107
102
}
108
103
109
104
/* This variant requires CAP_NET_RAW, so should fail. */
110
- if (!xsk_umem__create (& umem , b , UMEM_SIZE ,
111
- & fq , & cq , & config ) || umem ) {
112
- perror ("xsk_umem__create succeeded" );
105
+ DECLARE_LIBXDP_OPTS (xsk_umem_opts , opts_cap ,
106
+ .size = UMEM_SIZE ,
107
+ .fill_size = XSK_RING_PROD__DEFAULT_NUM_DESCS ,
108
+ .comp_size = XSK_RING_CONS__DEFAULT_NUM_DESCS ,
109
+ .frame_size = XSK_UMEM__DEFAULT_FRAME_SIZE ,
110
+ );
111
+ umem = xsk_umem__create_opts (b , & fq , & cq , & opts_cap );
112
+ if (umem ) {
113
+ perror ("xsk_umem__create_opts succeeded" );
113
114
exit (EXIT_FAILURE );
114
115
}
115
116
116
117
/* This variant shouldn't need any capabilities, so should pass. */
117
- if (xsk_umem__create_with_fd (& umem , sock_fd , b , UMEM_SIZE ,
118
- & fq , & cq , & config ) || !umem ) {
119
- perror ("xsk_umem__create_with_fd failed" );
118
+ DECLARE_LIBXDP_OPTS (xsk_umem_opts , opts ,
119
+ .fd = sock_fd ,
120
+ .size = UMEM_SIZE ,
121
+ .fill_size = XSK_RING_PROD__DEFAULT_NUM_DESCS ,
122
+ .comp_size = XSK_RING_CONS__DEFAULT_NUM_DESCS ,
123
+ .frame_size = XSK_UMEM__DEFAULT_FRAME_SIZE ,
124
+ );
125
+ umem = xsk_umem__create_opts (b , & fq , & cq , & opts );
126
+ if (!umem ) {
127
+ perror ("xsk_umem__create_opts failed" );
120
128
exit (EXIT_FAILURE );
121
129
}
122
130
0 commit comments