Files
cubelinux-kernel/tools/net/ynl/samples/ovs.c
T
Greg Kroah-Hartman 598cf27219 Linux 6.19.3
Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Tested-by: Ronald Warsow <rwarsow@gmx.de>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-02-19 16:33:27 +01:00

61 lines
1.2 KiB
C

// SPDX-License-Identifier: GPL-2.0
#include <stdio.h>
#include <string.h>
#include <ynl.h>
#include "ovs_datapath-user.h"
int main(int argc, char **argv)
{
struct ynl_sock *ys;
int err;
ys = ynl_sock_create(&ynl_ovs_datapath_family, NULL);
if (!ys)
return 1;
if (argc > 1) {
struct ovs_datapath_new_req *req;
req = ovs_datapath_new_req_alloc();
if (!req)
goto err_close;
ovs_datapath_new_req_set_upcall_pid(req, 1);
ovs_datapath_new_req_set_name(req, argv[1]);
err = ovs_datapath_new(ys, req);
ovs_datapath_new_req_free(req);
if (err)
goto err_close;
} else {
struct ovs_datapath_get_req_dump *req;
struct ovs_datapath_get_list *dps;
printf("Dump:\n");
req = ovs_datapath_get_req_dump_alloc();
dps = ovs_datapath_get_dump(ys, req);
ovs_datapath_get_req_dump_free(req);
if (!dps)
goto err_close;
ynl_dump_foreach(dps, dp) {
printf(" %s(%d): pid:%u cache:%u\n",
dp->name, dp->_hdr.dp_ifindex,
dp->upcall_pid, dp->masks_cache_size);
}
ovs_datapath_get_list_free(dps);
}
ynl_sock_destroy(ys);
return 0;
err_close:
fprintf(stderr, "YNL (%d): %s\n", ys->err.code, ys->err.msg);
ynl_sock_destroy(ys);
return 2;
}