[PATCH] Add new rtnl_bridge_get_port_state api
roopa at cumulusnetworks.com
roopa at cumulusnetworks.com
Tue Jan 8 08:33:51 EST 2013
From: roopa <roopa at cumulusnetworks.com>
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