[PATCH] Add new rtnl_bridge_get_port_state api

roopa at cumulusnetworks.com roopa at cumulusnetworks.com
Tue Jan 8 08:33:08 EST 2013


From: root <root at squeeze>

This patch adds support to get bridge port
state of an AF_BRIDGE link object.

Signed-off-by: Wilson Kok <wkok at cumulusnetworks.com>
Signed-off-by: Roopa Prabhu <roopa at cumulusnetworks.com>
---
 include/netlink/route/link/bridge.h |   28 ++++++++++++++++++++++++++++
 lib/route/link/bridge.c             |   10 ++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 include/netlink/route/link/bridge.h

diff --git a/include/netlink/route/link/bridge.h b/include/netlink/route/link/bridge.h
new file mode 100644
index 0000000..3525e98
--- /dev/null
+++ b/include/netlink/route/link/bridge.h
@@ -0,0 +1,28 @@
+/*
+ * netlink/route/link/bridge.h		Bridge interface
+ *
+ *	This library is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU Lesser General Public
+ *	License as published by the Free Software Foundation version 2.1
+ *	of the License.
+ *
+ * Copyright (c) 2003-2008 Thomas Graf <tgraf at suug.ch>
+ */
+
+#ifndef NETLINK_LINK_BRIDGE_H_
+#define NETLINK_LINK_BRIDGE_H_
+
+#include <netlink/netlink.h>
+#include <netlink/route/link.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int rtnl_bridge_get_port_state(struct rtnl_link *link);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/lib/route/link/bridge.c b/lib/route/link/bridge.c
index cd9f462..d3fdf88 100644
--- a/lib/route/link/bridge.c
+++ b/lib/route/link/bridge.c
@@ -92,6 +92,16 @@ static struct rtnl_link_af_ops bridge_ops = {
 	.ao_compare			= &bridge_compare,
 };
 
+int rtnl_bridge_get_port_state(struct rtnl_link *link)
+{
+	struct bridge_data *data = link->l_af_data[AF_BRIDGE];
+
+	if (data && (data->ce_mask & BRIDGE_ATTR_PORT_STATE))
+		return data->b_port_state;
+
+	return -1;
+}
+
 static void __init bridge_init(void)
 {
 	rtnl_link_af_register(&bridge_ops);
-- 
1.7.10.4




More information about the libnl mailing list