From 96b9a70885f56f79c80400f9efbaa7598edec4d1 Mon Sep 17 00:00:00 2001
From: Jens Osterkamp <jens@linux.vnet.ibm.com>
Date: Sun, 6 Mar 2011 21:38:25 -0800
Subject: [PATCH 17/51] check if port is enabled for RxTx
In vdp_ifup, check in adminstatus if port is enabled for RxTx, and do
nothing, if not.
Signed-off-by: Jens Osterkamp <jens@linux.vnet.ibm.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: Petr Sabata <psabata@redhat.com>
---
lldp_vdp.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/lldp_vdp.c b/lldp_vdp.c
index 980eaaf..b7c8f82 100644
--- a/lldp_vdp.c
+++ b/lldp_vdp.c
@@ -1235,6 +1235,7 @@ void vdp_ifup(char *ifname)
char *p;
struct vdp_data *vd;
struct vdp_user_data *ud;
+ struct port *port;
LLDPAD_DBG("%s(%i): starting VDP for if %s !\n", __func__, __LINE__, ifname);
@@ -1270,6 +1271,20 @@ void vdp_ifup(char *ifname)
ud = find_module_user_data_by_if(ifname, &lldp_head, LLDP_MOD_VDP);
LIST_INSERT_HEAD(&ud->head, vd, entry);
+ port = port_find_by_name(ifname);
+
+ if (!port) {
+ LLDPAD_ERR("%s(%i): could not find port for %s!\n",
+ __func__, __LINE__, ifname);
+ goto out_err;
+ }
+
+ if (port->adminStatus != enabledRxTx) {
+ LLDPAD_WARN("%s(%i): port %s not enabled for RxTx (%i) !\n",
+ __func__, __LINE__, ifname, port->adminStatus);
+ return;
+ }
+
out_start_again:
if (ecp_init(ifname)) {
LLDPAD_ERR("%s:%s unable to init ecp !\n", __func__, ifname);
--
1.7.4.4