| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // 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;
- }
|