Skip to content

Commit 9085a51

Browse files
tacslontohojo
authored andcommitted
libxdp: Assign default values for fields in xsk_umem_opts
Use 0 as default(or unset) value for fd when creating umem, also, set fields to their default values if passed in by 0. Signed-off-by: Muyang Tian <[email protected]>
1 parent 44b5e00 commit 9085a51

File tree

1 file changed

+15
-19
lines changed

1 file changed

+15
-19
lines changed

lib/libxdp/xsk.c

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,11 @@ static bool xsk_page_aligned(void *buffer)
154154
static void xsk_set_umem_config(struct xsk_umem_config *cfg,
155155
const struct xsk_umem_opts *opts)
156156
{
157-
cfg->fill_size = OPTS_GET(opts, fill_size, XSK_RING_PROD__DEFAULT_NUM_DESCS);
158-
cfg->comp_size = OPTS_GET(opts, comp_size, XSK_RING_CONS__DEFAULT_NUM_DESCS);
159-
cfg->frame_size = OPTS_GET(opts, frame_size, XSK_UMEM__DEFAULT_FRAME_SIZE);
160-
cfg->frame_headroom = OPTS_GET(opts, frame_headroom, XSK_UMEM__DEFAULT_FRAME_HEADROOM);
161-
cfg->flags = OPTS_GET(opts, flags, XSK_UMEM__DEFAULT_FLAGS);
157+
cfg->fill_size = OPTS_GET(opts, fill_size, 0) ?: XSK_RING_PROD__DEFAULT_NUM_DESCS;
158+
cfg->comp_size = OPTS_GET(opts, comp_size, 0) ?: XSK_RING_CONS__DEFAULT_NUM_DESCS;
159+
cfg->frame_size = OPTS_GET(opts, frame_size, 0) ?: XSK_UMEM__DEFAULT_FRAME_SIZE;
160+
cfg->frame_headroom = OPTS_GET(opts, frame_headroom, 0) ?: XSK_UMEM__DEFAULT_FRAME_HEADROOM;
161+
cfg->flags = OPTS_GET(opts, flags, 0) ?: XSK_UMEM__DEFAULT_FLAGS;
162162
}
163163

164164
static int xsk_set_xdp_socket_config(struct xsk_socket_config *cfg,
@@ -316,7 +316,7 @@ struct xsk_umem *xsk_umem__create_opts(void *umem_area,
316316
err = -EINVAL;
317317
goto err;
318318
}
319-
fd = OPTS_GET(opts, fd, -1);
319+
fd = OPTS_GET(opts, fd, 0);
320320
size = OPTS_GET(opts, size, 0);
321321

322322
if (!size && !xsk_page_aligned(umem_area)) {
@@ -330,7 +330,7 @@ struct xsk_umem *xsk_umem__create_opts(void *umem_area,
330330
goto err;
331331
}
332332

333-
umem->fd = fd < 0 ? socket(AF_XDP, SOCK_RAW, 0) : fd;
333+
umem->fd = fd > 0 ? fd : socket(AF_XDP, SOCK_RAW, 0);
334334
if (umem->fd < 0) {
335335
err = -errno;
336336
goto out_umem_alloc;
@@ -387,18 +387,14 @@ int xsk_umem__create_with_fd(struct xsk_umem **umem_ptr, int fd,
387387
DECLARE_LIBXDP_OPTS(xsk_umem_opts, opts,
388388
.fd = fd,
389389
.size = size,
390-
.fill_size = usr_config ? usr_config->fill_size
391-
: XSK_RING_PROD__DEFAULT_NUM_DESCS,
392-
.comp_size = usr_config ? usr_config->comp_size
393-
: XSK_RING_CONS__DEFAULT_NUM_DESCS,
394-
.frame_size = usr_config ? usr_config->frame_size
395-
: XSK_UMEM__DEFAULT_FRAME_SIZE,
396-
.frame_headroom = usr_config ? usr_config->frame_headroom
397-
: XSK_UMEM__DEFAULT_FRAME_HEADROOM,
398-
.flags = usr_config ? usr_config->flags
399-
: XSK_UMEM__DEFAULT_FLAGS,
400390
);
401-
391+
if (usr_config) {
392+
opts.fill_size = usr_config->fill_size;
393+
opts.comp_size = usr_config->comp_size;
394+
opts.frame_size = usr_config->frame_size;
395+
opts.frame_headroom = usr_config->frame_headroom;
396+
opts.flags = usr_config->flags;
397+
}
402398
umem = xsk_umem__create_opts(umem_area, fill, comp, &opts);
403399
if(!umem)
404400
return errno;
@@ -412,7 +408,7 @@ int xsk_umem__create(struct xsk_umem **umem_ptr, void *umem_area,
412408
struct xsk_ring_cons *comp,
413409
const struct xsk_umem_config *usr_config)
414410
{
415-
return xsk_umem__create_with_fd(umem_ptr, -1, umem_area, size,
411+
return xsk_umem__create_with_fd(umem_ptr, 0, umem_area, size,
416412
fill, comp, usr_config);
417413
}
418414

0 commit comments

Comments
 (0)