int main(int argc, char *argv[]) { struct nl_cache *link_cache; sock = nl_cli_alloc_socket(); nl_cli_connect(sock, NETLINK_ROUTE); link_cache = nl_cli_link_alloc_cache(sock); qdisc_cache = nl_cli_qdisc_alloc_cache(sock); params.dp_fd = stdout; for (;;) { int c, optidx = 0; static struct option long_opts[] = { { "format", 1, 0, 'f' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "f:hv", long_opts, &optidx); if (c == -1) break; switch (c) { case 'f': params.dp_type = nl_cli_parse_dumptype(optarg); break; case 'h': print_usage(); break; case 'v': nl_cli_print_version(); break; } } nl_cache_foreach(link_cache, &print_link, NULL); return 0; }
int main(int argc, char *argv[]) { struct nl_sock *sock; struct rtnl_neigh *neigh; struct nl_cache *link_cache, *neigh_cache; struct nl_dump_params params = { .dp_type = NL_DUMP_LINE, .dp_fd = stdout, }; sock = nl_cli_alloc_socket(); nl_cli_connect(sock, NETLINK_ROUTE); link_cache = nl_cli_link_alloc_cache_flags(sock, NL_CACHE_AF_ITER); neigh_cache = nl_cli_neigh_alloc_cache(sock); neigh = nl_cli_neigh_alloc(); for (;;) { int c, optidx = 0; enum { ARG_FAMILY = 257, ARG_STATE = 258, }; static struct option long_opts[] = { { "format", 1, 0, 'f' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { "addr", 1, 0, 'a' }, { "lladdr", 1, 0, 'l' }, { "dev", 1, 0, 'd' }, { "family", 1, 0, ARG_FAMILY }, { "state", 1, 0, ARG_STATE }, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "f:hva:l:d:", long_opts, &optidx); if (c == -1) break; switch (c) { case 'f': params.dp_type = nl_cli_parse_dumptype(optarg); break; case 'h': print_usage(); break; case 'v': nl_cli_print_version(); break; case 'a': nl_cli_neigh_parse_dst(neigh, optarg); break; case 'l': nl_cli_neigh_parse_lladdr(neigh, optarg); break; case 'd': nl_cli_neigh_parse_dev(neigh, link_cache, optarg); break; case ARG_FAMILY: nl_cli_neigh_parse_family(neigh, optarg); break; case ARG_STATE: nl_cli_neigh_parse_state(neigh, optarg); break; } } nl_cache_dump_filter(neigh_cache, ¶ms, OBJ_CAST(neigh)); return 0; }
int main(int argc, char *argv[]) { struct nl_sock *sock; struct rtnl_rule *rule; struct nl_cache *rule_cache; struct nl_dump_params params = { .dp_fd = stdout, .dp_type = NL_DUMP_LINE, }; sock = nl_cli_alloc_socket(); nl_cli_connect(sock, NETLINK_ROUTE); nl_cli_link_alloc_cache(sock); rule_cache = nl_cli_rule_alloc_cache(sock); rule = nl_cli_rule_alloc(); for (;;) { int c, optidx = 0; enum { ARG_FAMILY = 257, }; static struct option long_opts[] = { { "format", 1, 0, 'f' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { "family", 1, 0, ARG_FAMILY }, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "f:hv", long_opts, &optidx); if (c == -1) break; switch (c) { case 'f': params.dp_type = nl_cli_parse_dumptype(optarg); break; case 'h': print_usage(); break; case 'v': nl_cli_print_version(); break; case ARG_FAMILY: nl_cli_rule_parse_family(rule, optarg); break; } } nl_cache_dump_filter(rule_cache, ¶ms, OBJ_CAST(rule)); return 0; }
int main(int argc, char *argv[]) { struct nl_sock *sock; struct nl_cache *neightbl_cache; struct nl_dump_params params = { .dp_type = NL_DUMP_LINE, .dp_fd = stdout, }; sock = nl_cli_alloc_socket(); nl_cli_connect(sock, NETLINK_ROUTE); nl_cli_link_alloc_cache(sock); neightbl_cache = nl_cli_alloc_cache(sock, "neighbour table", rtnl_neightbl_alloc_cache); for (;;) { int c, optidx = 0; static struct option long_opts[] = { { "format", 1, 0, 'f' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "f:hv", long_opts, &optidx); if (c == -1) break; switch (c) { case 'f': params.dp_type = nl_cli_parse_dumptype(optarg); break; case 'h': print_usage(); break; case 'v': nl_cli_print_version(); break; } } nl_cache_dump(neightbl_cache, ¶ms); return 0; }
int main(int argc, char *argv[]) { struct nl_sock *sock; struct nl_cache *link_cache, *route_cache; struct rtnl_route *route; struct nl_dump_params params = { .dp_fd = stdout, .dp_type = NL_DUMP_LINE, }; int print_cache = 0; sock = nl_cli_alloc_socket(); nl_cli_connect(sock, NETLINK_ROUTE); link_cache = nl_cli_link_alloc_cache(sock); route = nl_cli_route_alloc(); for (;;) { int c, optidx = 0; enum { ARG_FAMILY = 257, ARG_SRC = 258, ARG_IIF, ARG_PREF_SRC, ARG_METRICS, ARG_PRIORITY, ARG_SCOPE, ARG_PROTOCOL, ARG_TYPE, }; static struct option long_opts[] = { { "cache", 0, 0, 'c' }, { "format", 1, 0, 'f' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { "dst", 1, 0, 'd' }, { "nexthop", 1, 0, 'n' }, { "table", 1, 0, 't' }, { "family", 1, 0, ARG_FAMILY }, { "src", 1, 0, ARG_SRC }, { "iif", 1, 0, ARG_IIF }, { "pref-src", 1, 0, ARG_PREF_SRC }, { "metrics", 1, 0, ARG_METRICS }, { "priority", 1, 0, ARG_PRIORITY }, { "scope", 1, 0, ARG_SCOPE }, { "protocol", 1, 0, ARG_PROTOCOL }, { "type", 1, 0, ARG_TYPE }, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "cf:hvd:n:t:", long_opts, &optidx); if (c == -1) break; switch (c) { case 'c': print_cache = 1; break; case 'f': params.dp_type = nl_cli_parse_dumptype(optarg); break; case 'h': print_usage(); break; case 'v': nl_cli_print_version(); break; case 'd': nl_cli_route_parse_dst(route, optarg); break; case 'n': nl_cli_route_parse_nexthop(route, optarg, link_cache); break; case 't': nl_cli_route_parse_table(route, optarg); break; case ARG_FAMILY: nl_cli_route_parse_family(route, optarg); break; case ARG_SRC: nl_cli_route_parse_src(route, optarg); break; case ARG_IIF: nl_cli_route_parse_iif(route, optarg, link_cache); break; case ARG_PREF_SRC: nl_cli_route_parse_pref_src(route, optarg); break; case ARG_METRICS: nl_cli_route_parse_metric(route, optarg); break; case ARG_PRIORITY: nl_cli_route_parse_prio(route, optarg); break; case ARG_SCOPE: nl_cli_route_parse_scope(route, optarg); break; case ARG_PROTOCOL: nl_cli_route_parse_protocol(route, optarg); break; case ARG_TYPE: nl_cli_route_parse_type(route, optarg); break; } } route_cache = nl_cli_route_alloc_cache(sock, print_cache ? ROUTE_CACHE_CONTENT : 0); nl_cache_dump_filter(route_cache, ¶ms, OBJ_CAST(route)); return 0; }
int main(int argc, char *argv[]) { struct nl_sock *sock; struct nl_cache *exp_cache; struct nfnl_exp *exp; struct nl_dump_params params = { .dp_type = NL_DUMP_LINE, .dp_fd = stdout, }; exp = nl_cli_exp_alloc(); for (;;) { int c, optidx = 0; enum { ARG_MARK = 270, ARG_TCP_STATE = 271, ARG_EXPECT_PROTO, ARG_EXPECT_SRC, ARG_EXPECT_SPORT, ARG_EXPECT_DST, ARG_EXPECT_DPORT, ARG_MASTER_PROTO, ARG_MASTER_SRC, ARG_MASTER_SPORT, ARG_MASTER_DST, ARG_MASTER_DPORT, ARG_TIMEOUT, ARG_HELPER_NAME, ARG_FLAGS, }; static struct option long_opts[] = { { "format", 1, 0, 'f' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { "id", 1, 0, 'i' }, { "expect-proto", 1, 0, ARG_EXPECT_PROTO }, { "expect-src", 1, 0, ARG_EXPECT_SRC }, { "expect-sport", 1, 0, ARG_EXPECT_SPORT }, { "expect-dst", 1, 0, ARG_EXPECT_DST }, { "expect-dport", 1, 0, ARG_EXPECT_DPORT }, { "master-proto", 1, 0, ARG_MASTER_PROTO }, { "master-src", 1, 0, ARG_MASTER_SRC }, { "master-sport", 1, 0, ARG_MASTER_SPORT }, { "master-dst", 1, 0, ARG_MASTER_DST }, { "master-dport", 1, 0, ARG_MASTER_DPORT }, { "family", 1, 0, 'F' }, { "timeout", 1, 0, ARG_TIMEOUT }, { "helper", 1, 0, ARG_HELPER_NAME }, { "flags", 1, 0, ARG_FLAGS}, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "46f:hvi:p:F:", long_opts, &optidx); if (c == -1) break; switch (c) { case '?': exit(NLE_INVAL); case '4': nfnl_exp_set_family(exp, AF_INET); break; case '6': nfnl_exp_set_family(exp, AF_INET6); break; case 'f': params.dp_type = nl_cli_parse_dumptype(optarg); break; case 'h': print_usage(); break; case 'v': nl_cli_print_version(); break; case 'i': nl_cli_exp_parse_id(exp, optarg); break; case ARG_EXPECT_PROTO: nl_cli_exp_parse_l4protonum(exp, NFNL_EXP_TUPLE_EXPECT, optarg); break; case ARG_EXPECT_SRC: nl_cli_exp_parse_src(exp, NFNL_EXP_TUPLE_EXPECT, optarg); break; case ARG_EXPECT_SPORT: nl_cli_exp_parse_src_port(exp, NFNL_EXP_TUPLE_EXPECT, optarg); break; case ARG_EXPECT_DST: nl_cli_exp_parse_dst(exp, NFNL_EXP_TUPLE_EXPECT, optarg); break; case ARG_EXPECT_DPORT: nl_cli_exp_parse_dst_port(exp, NFNL_EXP_TUPLE_EXPECT, optarg); break; case ARG_MASTER_PROTO: nl_cli_exp_parse_l4protonum(exp, NFNL_EXP_TUPLE_MASTER, optarg); break; case ARG_MASTER_SRC: nl_cli_exp_parse_src(exp, NFNL_EXP_TUPLE_MASTER, optarg); break; case ARG_MASTER_SPORT: nl_cli_exp_parse_src_port(exp, NFNL_EXP_TUPLE_MASTER, optarg); break; case ARG_MASTER_DST: nl_cli_exp_parse_dst(exp, NFNL_EXP_TUPLE_MASTER, optarg); break; case ARG_MASTER_DPORT: nl_cli_exp_parse_dst_port(exp, NFNL_EXP_TUPLE_MASTER, optarg); break; case 'F': nl_cli_exp_parse_family(exp, optarg); break; case ARG_TIMEOUT: nl_cli_exp_parse_timeout(exp, optarg); break; case ARG_HELPER_NAME: nl_cli_exp_parse_helper_name(exp, optarg); break; case ARG_FLAGS: nl_cli_exp_parse_flags(exp, optarg); break; } } sock = nl_cli_alloc_socket(); nl_cli_connect(sock, NETLINK_NETFILTER); exp_cache = nl_cli_exp_alloc_cache(sock); nl_cache_dump_filter(exp_cache, ¶ms, OBJ_CAST(exp)); return 0; }