Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| ipp_up_and_iff_running [2018/08/25 17:21] – [net/core/dev_ioctl.c] rpjday | ipp_up_and_iff_running [2018/08/27 11:03] (current) – [net/core/dev_ioctl.c] rpjday | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| ===== Flags ===== | ===== Flags ===== | ||
| + | |||
| + | Issues: | ||
| + | |||
| + | * Is '' | ||
| + | * Can we use '' | ||
| + | * Understand actual meaning of " | ||
| From '' | From '' | ||
| < | < | ||
| + | /** | ||
| + | * 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 / | ||
| + | * are annotated below, note that only a few flags can be toggled and some | ||
| + | * other flags are 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: | ||
| + | * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. | ||
| + | * @IFF_LOOPBACK: | ||
| + | * @IFF_POINTOPOINT: | ||
| + | * @IFF_NOTRAILERS: | ||
| + | | ||
| + | * @IFF_RUNNING: | ||
| + | * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. | ||
| + | * @IFF_PROMISC: | ||
| + | * @IFF_ALLMULTI: | ||
| + | | ||
| + | * @IFF_MASTER: | ||
| + | * @IFF_SLAVE: slave of a load balancer. Volatile. | ||
| + | * @IFF_MULTICAST: | ||
| + | * @IFF_PORTSEL: | ||
| + | * @IFF_AUTOMEDIA: | ||
| + | * @IFF_DYNAMIC: | ||
| + | | ||
| + | * @IFF_LOWER_UP: | ||
| + | * @IFF_DORMANT: | ||
| + | * @IFF_ECHO: echo sent packets. Volatile. | ||
| + | */ | ||
| + | |||
| enum net_device_flags { | enum net_device_flags { | ||
| /* for compatibility with glibc net/if.h */ | /* for compatibility with glibc net/if.h */ | ||
| Line 97: | Line 144: | ||
| RX errors 0 dropped 0 overruns 0 frame 0 | RX errors 0 dropped 0 overruns 0 frame 0 | ||
| TX packets 36836 bytes 9042100 (8.6 MiB) | TX packets 36836 bytes 9042100 (8.6 MiB) | ||
| + | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | ||
| + | </ | ||
| + | |||
| + | ==== Up again ==== | ||
| + | |||
| + | UP, shortly followed by RUNNING: | ||
| + | |||
| + | < | ||
| + | enp3s0: flags=4163< | ||
| + | inet 192.168.0.15 | ||
| + | inet6 fd00: | ||
| + | inet6 fe80:: | ||
| + | ether 2c: | ||
| + | RX packets 1268514 | ||
| + | RX errors 0 dropped 0 overruns 0 frame 0 | ||
| + | TX packets 396222 | ||
| TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | ||
| </ | </ | ||
| Line 119: | Line 182: | ||
| ==== net/ | ==== net/ | ||
| + | |||
| + | This is how '' | ||
| < | < | ||
| Line 139: | Line 204: | ||
| ==== net/ | ==== net/ | ||
| + | |||
| + | Volatile flags are supported via RFC2863 operstates. | ||
| < | < | ||