User Tools

Site Tools


net_device_attributes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
net_device_attributes [2018/08/01 14:54]
rpjday [/sys/class/net/enp3s0/ files]
net_device_attributes [2018/08/01 15:05] (current)
rpjday
Line 51: Line 51:
 </​code>​ </​code>​
  
-===== Interesting attributes from above =====+===== flags =====
  
-==== carrier ​====+==== include/​uapi/​linux/​if.h ​====
  
-==== operstate ​====+<​code>​ 
 +/** 
 + * enum net_device_flags - &struct net_device flags 
 + * 
 + * These are the &struct net_device flags, they can be set by drivers, the 
 + * kernel and some can be triggered by userspace. Userspace can query and 
 + * set these flags using userspace utilities but there is also a sysfs 
 + * entry available for all dev flags which can be queried and set. These flags 
 + * are shared for all types of net_devices. The sysfs entries are available 
 + * via /​sys/​class/​net/<​dev>/​flags. Flags which can be toggled through sysfs 
 + * are annotated below, note that only a few flags can be toggled and some 
 + * other flags are always always preserved from the original net_device flags 
 + * even if you try to set them via sysfs. Flags which are always preserved 
 + * are kept under the flag grouping @IFF_VOLATILE. Flags which are volatile 
 + * are annotated below as such. 
 + * 
 + * You should have a pretty good reason to be extending these flags. 
 + * 
 + * @IFF_UP: interface is up. Can be toggled through sysfs. 
 + * @IFF_BROADCAST:​ broadcast address valid. Volatile. 
 + * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. 
 + * @IFF_LOOPBACK:​ is a loopback net. Volatile. 
 + * @IFF_POINTOPOINT:​ interface is has p-p link. Volatile. 
 + * @IFF_NOTRAILERS:​ avoid use of trailers. Can be toggled through sysfs. 
 + ​* ​     Volatile. 
 + * @IFF_RUNNING:​ interface RFC2863 OPER_UP. Volatile. 
 + * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. 
 + * @IFF_PROMISC:​ receive all packets. Can be toggled through sysfs. 
 + * @IFF_ALLMULTI:​ receive all multicast packets. Can be toggled through 
 + ​* ​     sysfs. 
 + * @IFF_MASTER:​ master of a load balancer. Volatile. 
 + * @IFF_SLAVE: slave of a load balancer. Volatile. 
 + * @IFF_MULTICAST:​ Supports multicast. Can be toggled through sysfs. 
 + * @IFF_PORTSEL:​ can set media type. Can be toggled through sysfs. 
 + * @IFF_AUTOMEDIA:​ auto media select active. Can be toggled through sysfs. 
 + * @IFF_DYNAMIC:​ dialup device with changing addresses. Can be toggled 
 + ​* ​     through sysfs. 
 + * @IFF_LOWER_UP:​ driver signals L1 up. Volatile. 
 + * @IFF_DORMANT:​ driver signals dormant. Volatile. 
 + * @IFF_ECHO: echo sent packets. Volatile. 
 + */ 
 +enum net_device_flags { 
 +        IFF_UP ​                         ​1<<​0, ​ /* sysfs */ 
 +        IFF_BROADCAST ​                  1<<​1, ​ /* volatile */ 
 +        IFF_DEBUG ​                      1<<​2, ​ /* sysfs */ 
 +        IFF_LOOPBACK ​                   ​1<<​3, ​ /* volatile */ 
 +        IFF_POINTOPOINT ​                1<<​4, ​ /* volatile */ 
 +        IFF_NOTRAILERS ​                 ​1<<​5, ​ /* sysfs */ 
 +        IFF_RUNNING ​                    1<<​6, ​ /* volatile */ 
 +        IFF_NOARP ​                      1<<​7, ​ /* sysfs */ 
 +        IFF_PROMISC ​                    = 1<<​8, ​ /* sysfs */ 
 +        IFF_ALLMULTI ​                   = 1<<​9, ​ /* sysfs */ 
 +        IFF_MASTER ​                     = 1<<​10,​ /* volatile */ 
 +        IFF_SLAVE ​                      = 1<<​11,​ /* volatile */ 
 +        IFF_MULTICAST ​                  = 1<<​12,​ /* sysfs */ 
 +        IFF_PORTSEL ​                    = 1<<​13,​ /* sysfs */ 
 +        IFF_AUTOMEDIA ​                  = 1<<​14,​ /* sysfs */ 
 +        IFF_DYNAMIC ​                    = 1<<​15,​ /* sysfs */ 
 +        IFF_LOWER_UP ​                   = 1<<​16,​ /* volatile */ 
 +        IFF_DORMANT ​                    = 1<<​17,​ /* volatile */ 
 +        IFF_ECHO ​                       = 1<<​18,​ /* volatile */ 
 +};
  
-==== flags ====+#define IFF_UP ​                         IFF_UP 
 +#define IFF_BROADCAST ​                  ​IFF_BROADCAST 
 +#define IFF_DEBUG ​                      ​IFF_DEBUG 
 +#define IFF_LOOPBACK ​                   IFF_LOOPBACK 
 +#define IFF_POINTOPOINT ​                ​IFF_POINTOPOINT 
 +#define IFF_NOTRAILERS ​                 IFF_NOTRAILERS 
 +#define IFF_RUNNING ​                    ​IFF_RUNNING 
 +#define IFF_NOARP ​                      ​IFF_NOARP 
 +#define IFF_PROMISC ​                    ​IFF_PROMISC 
 +#define IFF_ALLMULTI ​                   IFF_ALLMULTI 
 +#define IFF_MASTER ​                     IFF_MASTER 
 +#define IFF_SLAVE ​                      ​IFF_SLAVE 
 +#define IFF_MULTICAST ​                  ​IFF_MULTICAST 
 +#define IFF_PORTSEL ​                    ​IFF_PORTSEL 
 +#define IFF_AUTOMEDIA ​                  ​IFF_AUTOMEDIA 
 +#define IFF_DYNAMIC ​                    ​IFF_DYNAMIC 
 +#define IFF_LOWER_UP ​                   IFF_LOWER_UP 
 +#define IFF_DORMANT ​                    ​IFF_DORMANT 
 +#define IFF_ECHO ​                       IFF_ECHO 
 + 
 +#define IFF_VOLATILE ​   (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ 
 +                IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) 
 +</​code>​
net_device_attributes.txt · Last modified: 2018/08/01 15:05 by rpjday