On 11/30/12 at 05:58pm, Cong Wang wrote: > diff --git a/bridge/br_common.h b/bridge/br_common.h > index 718ecb9..83b2b9f 100644 > --- a/bridge/br_common.h > +++ b/bridge/br_common.h > @@ -5,6 +5,7 @@ extern int print_fdb(const struct sockaddr_nl *who, > struct nlmsghdr *n, void *arg); > > extern int do_fdb(int argc, char **argv); > +extern int do_mdb(int argc, char **argv); > extern int do_monitor(int argc, char **argv); > > extern int preferred_family; > @@ -12,3 +13,37 @@ extern int show_stats; > extern int show_detail; > extern int timestamp; > extern struct rtnl_handle rth; > + > +/* Bridge multicast database attributes > + * [MDBA_MDB] = { > + * [MDBA_MCADDR] > + * [MDBA_BRPORT_NO] > + * } > + * [MDBA_ROUTER] = { > + * [MDBA_BRPORT_NO] > + * } > + */ > +enum { > + MDBA_UNSPEC, > + MDBA_MDB, > + MDBA_ROUTER, > + __MDBA_MAX, > +}; > +#define MDBA_MAX (__MDBA_MAX - 1) > + > +enum { > + MDBA_MDB_UNSPEC, > + MDBA_MCADDR, > + MDBA_BRPORT_NO, > + __MDBA_MDB_MAX, > +}; > +#define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) > + > +struct br_port_msg { > + int ifindex; > +}; > + > +#ifndef MDBA_RTA > +#define MDBA_RTA(r) \ > + ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct br_port_msg)))) > +#endif You shouldn't need to duplicate the attribute ids and struct br_port_msg in iproute2. Just put these definitions in a uapi kernel header and include the header from iproute2.