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.
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.