diff options
author | Florian Eckert <fe@dev.tdt.de> | 2022-01-11 15:42:59 +0100 |
---|---|---|
committer | Hans Dedecker <dedeckeh@gmail.com> | 2022-01-12 20:28:33 +0100 |
commit | 29e6acf3bd34633fa1a3d51559cc1294b772f88e (patch) | |
tree | dbff176edc241c750dc845d8ecae21c4d86c7adf /system.h | |
parent | 7ccbf08570619a4d3eccf6401791075908bb1d78 (diff) | |
download | netifd-29e6acf3bd34633fa1a3d51559cc1294b772f88e.tar.gz |
netifd: add devtype to ubus call
Every network device has a type but there is no standard interface here.
The type can be determined either from the file
'/sys/class/net/<device>/uevent' or, if no information is found
there, from the file '/sys/class/net/<device>/type'.
This new function first checks whether there is a DEVTYPE=<type> string
in the 'uevent' file and uses it. If it does not find this information,
the 'type' is used as a fallback and mapped the number to a character
sequence.
This new 'devtype' information can be found in the network.device ubus
call.
Command:
ubus call network.device status
Output:
{
"eth0": {
"devtype": "ethernet",
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [commit rewording]
Diffstat (limited to 'system.h')
-rw-r--r-- | system.h | 65 |
1 files changed, 65 insertions, 0 deletions
@@ -23,6 +23,71 @@ #include "iprule.h" #include "utils.h" +struct netdev_type { + unsigned short id; + const char *name; +}; + +static const struct netdev_type netdev_types[] = { + {ARPHRD_NETROM, "netrom"}, + {ARPHRD_ETHER, "ethernet"}, + {ARPHRD_EETHER, "eethernet"}, + {ARPHRD_AX25, "ax25"}, + {ARPHRD_PRONET, "pronet"}, + {ARPHRD_CHAOS, "chaos"}, + {ARPHRD_IEEE802, "ieee802"}, + {ARPHRD_ARCNET, "arcnet"}, + {ARPHRD_APPLETLK, "appletlk"}, + {ARPHRD_DLCI, "dlci"}, + {ARPHRD_ATM, "atm"}, + {ARPHRD_METRICOM, "metricom"}, + {ARPHRD_IEEE1394, "ieee1394"}, + {ARPHRD_EUI64, "eui64"}, + {ARPHRD_INFINIBAND, "infiniband"}, + {ARPHRD_SLIP, "slip"}, + {ARPHRD_CSLIP, "cslip"}, + {ARPHRD_SLIP6, "slip6"}, + {ARPHRD_CSLIP6, "cslip6"}, + {ARPHRD_RSRVD, "rsrvd"}, + {ARPHRD_ADAPT, "adapt"}, + {ARPHRD_ROSE, "rose"}, + {ARPHRD_X25, "x25"}, + {ARPHRD_HWX25, "hwx25"}, + {ARPHRD_PPP, "ppp"}, + {ARPHRD_CISCO, "cisco"}, + {ARPHRD_LAPB, "lapb"}, + {ARPHRD_DDCMP, "ddcmp"}, + {ARPHRD_RAWHDLC, "rawhdlc"}, + {ARPHRD_TUNNEL, "tunnel"}, + {ARPHRD_TUNNEL6, "tunnel6"}, + {ARPHRD_FRAD, "frad"}, + {ARPHRD_SKIP, "skip"}, + {ARPHRD_LOOPBACK, "loopback"}, + {ARPHRD_LOCALTLK, "localtlk"}, + {ARPHRD_FDDI, "fddi"}, + {ARPHRD_BIF, "bif"}, + {ARPHRD_SIT, "sit"}, + {ARPHRD_IPDDP, "ipddp"}, + {ARPHRD_IPGRE, "ipgre"}, + {ARPHRD_PIMREG,"pimreg"}, + {ARPHRD_HIPPI, "hippi"}, + {ARPHRD_ASH, "ash"}, + {ARPHRD_ECONET, "econet"}, + {ARPHRD_IRDA, "irda"}, + {ARPHRD_FCPP, "fcpp"}, + {ARPHRD_FCAL, "fcal"}, + {ARPHRD_FCPL, "fcpl"}, + {ARPHRD_FCFABRIC, "fcfabric"}, + {ARPHRD_IEEE80211, "ieee80211"}, + {ARPHRD_IEEE80211_PRISM, "ie80211-prism"}, + {ARPHRD_IEEE80211_RADIOTAP, "ieee80211-radiotap"}, + {ARPHRD_PHONET, "phonet"}, + {ARPHRD_PHONET_PIPE, "phonet-pipe"}, + {ARPHRD_IEEE802154, "ieee802154"}, + {ARPHRD_VOID, "void"}, + {ARPHRD_NONE, "none"} +}; + enum tunnel_param { TUNNEL_ATTR_TYPE, TUNNEL_ATTR_REMOTE, |