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
Next revision
Previous revision
net_device_attributes [2018/08/01 14:48]
rpjday [/sys/class/net/enp3s0/ files]
net_device_attributes [2018/08/01 15:05]
rpjday
Line 49: Line 49:
 -r--r--r--. 1 root root 4096 Aug  1 10:41 operstate ​   [up or down] -r--r--r--. 1 root root 4096 Aug  1 10:41 operstate ​   [up or down]
 -rw-r--r--. 1 root root 4096 Aug  1 10:41 flags -rw-r--r--. 1 root root 4096 Aug  1 10:41 flags
 +</​code>​
 +
 +===== flags =====
 +
 +==== include/​uapi/​linux/​if.h ====
 +
 +<​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 */
 +};
 +
 +#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>​ </​code>​
net_device_attributes.txt ยท Last modified: 2018/08/01 15:05 by rpjday