User Tools

Site Tools


network_stuff:linux_network_internals

This is an old revision of the document!


Always use the -d flag when dealing with the netlink api:

ip -d link show wlp2s0
ip add show | egrep "^[0-9*]|inet "  # this is unrelated but useful for a more compact view.
  • Interaction user-space » kernel
    • Existing system call
    • ioctl
    • /proc file
    • NETLINK socket?

NETLINK (successor of ioctl): api (no restapi), system call. Is the way ip route talks to the kernel. socket family is a Linux kernel interface used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes, in a way similar to the Unix domain sockets. NETLINK_ROUTE , NETLINK_ARPD , NETLINK_NETFILTER …
Do not confuse it with NETFILTER (~iptables)

Place to find all information about interface is this, they are netdev, not just dev:

/sys/class/net

How to use multiple routing tables in linux : 1) Index in rt_tables ; 2) ip rule 'if source x, use the table y ; 3) define the table entries as usual but adding .. table <y> at the end . External Link
TODO
… kernel objects and udev, and details of implementing logical interfaces that are associated with ASIC front-panel physical ports. From this discussion: http://blog.ipspace.net/2018/03/linux-interfaces-on-software-gone-wild.html
Interface can or cannot be related to physical port.
Linux labels them according to the PCI name, UUID can be used to rename them. udev, driver..

CPU-PCI BUS (unique)	driver enumerates > port1,2,3 ...
Then udev/uuid is used to map the name/rename the port name on boot time


network_stuff/linux_network_internals.1540753202.txt.gz · Last modified: (external edit)