From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Cong Wang Date: Tue, 27 Nov 2012 17:49:43 +0800 Message-Id: <1354009785-20014-1-git-send-email-amwang@redhat.com> Subject: [Bridge] [RFC PATCH 1/2] bridge: export port_no and port_id via IFA_INFO_DATA List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: netdev@vger.kernel.org Cc: Cong Wang , bridge@lists.linux-foundation.org, Herbert Xu , Jesper Dangaard Brouer , Thomas Graf , Stephen Hemminger , "David S. Miller" Based on net-next. This patch exports port->port_no port->port_id in the end of IFA_INFO_DATA. Cc: Herbert Xu Cc: Stephen Hemminger Cc: "David S. Miller" Cc: Thomas Graf Cc: Jesper Dangaard Brouer Signed-off-by: Cong Wang --- include/uapi/linux/if_link.h | 2 ++ net/bridge/br_netlink.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletions(-) diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index bb58aeb..9cd91a9 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h @@ -218,6 +218,8 @@ enum { IFLA_BRPORT_MODE, /* mode (hairpin) */ IFLA_BRPORT_GUARD, /* bpdu guard */ IFLA_BRPORT_PROTECT, /* root port protection */ + IFLA_BRPORT_NO, /* port no */ + IFLA_BRPORT_ID, /* port id */ __IFLA_BRPORT_MAX }; #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c index 65429b9..7b7414e 100644 --- a/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c @@ -28,6 +28,8 @@ static inline size_t br_port_info_size(void) + nla_total_size(1) /* IFLA_BRPORT_MODE */ + nla_total_size(1) /* IFLA_BRPORT_GUARD */ + nla_total_size(1) /* IFLA_BRPORT_PROTECT */ + + nla_total_size(2) /* IFLA_BRPORT_NO */ + + nla_total_size(2) /* IFLA_BRPORT_ID */ + 0; } @@ -53,7 +55,9 @@ static int br_port_fill_attrs(struct sk_buff *skb, nla_put_u32(skb, IFLA_BRPORT_COST, p->path_cost) || nla_put_u8(skb, IFLA_BRPORT_MODE, mode) || nla_put_u8(skb, IFLA_BRPORT_GUARD, !!(p->flags & BR_BPDU_GUARD)) || - nla_put_u8(skb, IFLA_BRPORT_PROTECT, !!(p->flags & BR_ROOT_BLOCK))) + nla_put_u8(skb, IFLA_BRPORT_PROTECT, !!(p->flags & BR_ROOT_BLOCK)) || + nla_put_u16(skb, IFLA_BRPORT_NO, p->port_no) || + nla_put_u16(skb, IFLA_BRPORT_ID, p->port_id)) return -EMSGSIZE; return 0; @@ -168,6 +172,8 @@ static const struct nla_policy ifla_brport_policy[IFLA_BRPORT_MAX + 1] = { [IFLA_BRPORT_MODE] = { .type = NLA_U8 }, [IFLA_BRPORT_GUARD] = { .type = NLA_U8 }, [IFLA_BRPORT_PROTECT] = { .type = NLA_U8 }, + [IFLA_BRPORT_NO] = { .type = NLA_U16 }, + [IFLA_BRPORT_ID] = { .type = NLA_U16 }, }; /* Change the state of the port and notify spanning tree */ -- 1.7.7.6