"ip a" returns interface names like "lan1@eth0". What's with the @/at-sign/at-symbol?

Running ip a returns interface names such as lan1@eth0, lan2@eth0 and wan@eth0 while ifconfig returns interface names such as lan1, lan2 and wan.

Despite an evening of searching, I cannot find this interface name syntax defined / explained anywhere. (man ip certainly does not mention it, and I can't find the bit in the source for the ip applet of busybox that adds the at-symbol/at-sign/@-sign)

I think that it's something to do with dsa/distributed switch architecture that is supposed to represent user@conduit (slave@master in old terminology). Can someone please give a pointer or a push in the right direction? TIA.

2 Likes

In ip output, the @foo suffix for an interface name denotes the parent interface. The related RTNL attribute is IFLA_LINK. For a VLAN device eth0.10 the parent interface would be eth0, for a DSA port interface, the parent interface would be the DSA conduit device, for a IPIP tunnel device, the parent interface would be the physical device the tunnel is bound to etc.

The specific meaning varies with the type of interface, but as a rule of thumb one could say that the @ denoted interface is the one the shown interface is layered on.

3 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.