On Thu, 23 Feb 2006 09:39:18 +0100
Jørgen Hovland <[EMAIL PROTECTED]> wrote:
> (sorry about the empty last email)
>
> ----- Original Message -----
> From: "Stephen Hemminger" <[EMAIL PROTECTED]>
>
> > On Wed, 22 Feb 2006 09:42:49 +0100
> > Jørgen Hovland <[EMAIL PROTECTED]> wrote:
> >
> >> So there is no way to get the physical interface from a mac address?
> >
> > You can read the forwarding database (see brctl sources for how).
> > But the value can change as result of traffic.
> >
>
>
> I did actually look at the code before I emailed the list. Sorry if I am
> missing something, but a fdb_entry maps a hardware address to a port number.
> This arbitary port number points to the port_info structure which seems to
> only hold information about what bridge it belongs to. And the bridge_info
> structure doesn't contain any information either.
> The only place I can find something that might be useful is in
> linux/netdevice.h and the "struct net_bridge_port *br_port" under the
> net_device structure. This is inside the kernel as it needs __KERNEL__
> defined in order to use it, or is this what I am looking for?
>
> Thank you once again
>
> Joergen
The old way is to do ioctl() SIOCDEV_PRIVATE with BRCTL_GET_BRIDGES
and that gives a table of ifindices, you can use that to map port -> ifindex ->
etherdevice
Newer way is to look in directory:
/sys/class/net/brX/brif
It has symlinks to the devices that are being bridged.
/sys/class/net/eth0/brport/port_id
contains the portid of eth0 in what ever bridge it is in.
_______________________________________________
Bridge mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/bridge