iproute2/ip/iplink_wwan.c
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2
   3#include <stdio.h>
   4#include <linux/netlink.h>
   5#include <linux/wwan.h>
   6
   7#include "utils.h"
   8#include "ip_common.h"
   9
  10static void print_explain(FILE *f)
  11{
  12        fprintf(f,
  13                "Usage: ... wwan linkid LINKID\n"
  14                "\n"
  15                "Where: LINKID := 0-4294967295\n"
  16        );
  17}
  18
  19static void explain(void)
  20{
  21        print_explain(stderr);
  22}
  23
  24static int wwan_parse_opt(struct link_util *lu, int argc, char **argv,
  25                          struct nlmsghdr *n)
  26{
  27        while (argc > 0) {
  28                if (matches(*argv, "linkid") == 0) {
  29                        __u32 linkid;
  30
  31                        NEXT_ARG();
  32                        if (get_u32(&linkid, *argv, 0))
  33                                invarg("linkid", *argv);
  34                        addattr32(n, 1024, IFLA_WWAN_LINK_ID, linkid);
  35                } else if (matches(*argv, "help") == 0) {
  36                        explain();
  37                        return -1;
  38                } else {
  39                        fprintf(stderr, "wwan: unknown command \"%s\"?\n",
  40                                *argv);
  41                        explain();
  42                        return -1;
  43                }
  44                argc--, argv++;
  45        }
  46
  47        return 0;
  48}
  49
  50static void wwan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
  51{
  52        if (!tb)
  53                return;
  54
  55        if (tb[IFLA_WWAN_LINK_ID])
  56                print_uint(PRINT_ANY, "linkid", "linkid %u ",
  57                           rta_getattr_u32(tb[IFLA_WWAN_LINK_ID]));
  58}
  59
  60static void wwan_print_help(struct link_util *lu, int argc, char **argv,
  61                            FILE *f)
  62{
  63        print_explain(f);
  64}
  65
  66struct link_util wwan_link_util = {
  67        .id             = "wwan",
  68        .maxattr        = IFLA_WWAN_MAX,
  69        .parse_opt      = wwan_parse_opt,
  70        .print_opt      = wwan_print_opt,
  71        .print_help     = wwan_print_help,
  72};
  73