]> git.proxmox.com Git - mirror_iproute2.git/blob - ip/iplink_rmnet.c
Update kernel headers
[mirror_iproute2.git] / ip / iplink_rmnet.c
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * iplink_rmnet.c RMNET device support
4 *
5 * Authors: Daniele Palmas <dnlplm@gmail.com>
6 */
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <string.h>
11
12 #include "utils.h"
13 #include "ip_common.h"
14
15 static void print_explain(FILE *f)
16 {
17 fprintf(f,
18 "Usage: ... rmnet mux_id MUXID\n"
19 "\n"
20 "MUXID := 1-254\n"
21 );
22 }
23
24 static void explain(void)
25 {
26 print_explain(stderr);
27 }
28
29 static int rmnet_parse_opt(struct link_util *lu, int argc, char **argv,
30 struct nlmsghdr *n)
31 {
32 __u16 mux_id;
33
34 while (argc > 0) {
35 if (matches(*argv, "mux_id") == 0) {
36 NEXT_ARG();
37 if (get_u16(&mux_id, *argv, 0))
38 invarg("mux_id is invalid", *argv);
39 addattr16(n, 1024, IFLA_RMNET_MUX_ID, mux_id);
40 } else if (matches(*argv, "help") == 0) {
41 explain();
42 return -1;
43 } else {
44 fprintf(stderr, "rmnet: unknown command \"%s\"?\n", *argv);
45 explain();
46 return -1;
47 }
48 argc--, argv++;
49 }
50
51 return 0;
52 }
53
54 static void rmnet_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
55 {
56 if (!tb)
57 return;
58
59 if (!tb[IFLA_RMNET_MUX_ID] ||
60 RTA_PAYLOAD(tb[IFLA_RMNET_MUX_ID]) < sizeof(__u16))
61 return;
62
63 print_uint(PRINT_ANY,
64 "mux_id",
65 "mux_id %u ",
66 rta_getattr_u16(tb[IFLA_RMNET_MUX_ID]));
67 }
68
69 static void rmnet_print_help(struct link_util *lu, int argc, char **argv,
70 FILE *f)
71 {
72 print_explain(f);
73 }
74
75 struct link_util rmnet_link_util = {
76 .id = "rmnet",
77 .maxattr = IFLA_RMNET_MAX,
78 .parse_opt = rmnet_parse_opt,
79 .print_opt = rmnet_print_opt,
80 .print_help = rmnet_print_help,
81 };