static int do_del(int argc, char **argv) { ILA_REQUEST(req, 1024, ILA_CMD_DEL, NLM_F_REQUEST); ila_parse_opt(argc, argv, &req.n, false); if (rtnl_talk(&genl_rth, &req.n, NULL) < 0) return -2; return 0; }
static int do_add(int argc, char **argv) { ILA_REQUEST(req, 1024, ILA_CMD_ADD, NLM_F_REQUEST); ila_parse_opt(argc, argv, &req.n, true); if (rtnl_talk(&genl_rth, &req.n, NULL, 0) < 0) return -2; return 0; }
static int do_list(int argc, char **argv) { ILA_REQUEST(req, 1024, ILA_CMD_GET, NLM_F_REQUEST | NLM_F_DUMP); if (argc > 0) { fprintf(stderr, "\"ip ila show\" does not take " "any arguments.\n"); return -1; } if (rtnl_send(&genl_rth, (void *)&req, req.n.nlmsg_len) < 0) { perror("Cannot send dump request"); exit(1); } if (rtnl_dump_filter(&genl_rth, print_ila_mapping, stdout) < 0) { fprintf(stderr, "Dump terminated\n"); return 1; } return 0; }