From 7db37bba566b96679e878f7cfb21520be5a9f2c6 Mon Sep 17 00:00:00 2001
From: Adam Wujek <adam.wujek@cern.ch>
Date: Thu, 23 Apr 2015 16:44:56 +0200
Subject: [PATCH] userspace/snmpd: add defines of wrsPortStatusLink and
 wrsPortStatusMode to wrsPortStatusTable.h

Also fix of description of wrsPortStatusMode in MIB

Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
---
 userspace/snmpd/WR-SWITCH-MIB.txt    | 6 +++---
 userspace/snmpd/wrsPortStatusTable.c | 6 +++++-
 userspace/snmpd/wrsPortStatusTable.h | 9 +++++++++
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/userspace/snmpd/WR-SWITCH-MIB.txt b/userspace/snmpd/WR-SWITCH-MIB.txt
index d09029da6..2468d2e0f 100644
--- a/userspace/snmpd/WR-SWITCH-MIB.txt
+++ b/userspace/snmpd/WR-SWITCH-MIB.txt
@@ -1442,7 +1442,7 @@ WrsPortStatusEntry ::=
         wrsPortStatusIndex       Unsigned32,
         wrsPortStatusPortName    DisplayString,
         wrsPortStatusLink        INTEGER,
-        wrsPortStatusMode        INTEGER,
+        wrsPortStatusConfiguredMode INTEGER,
         wrsPortStatusLocked      INTEGER,
         wrsPortStatusPeer        OCTET STRING,
         wrsPortStatusSfpVN       DisplayString,
@@ -1481,7 +1481,7 @@ wrsPortStatusLink OBJECT-TYPE
             "Whether the link is up or down"
     ::= { wrsPortStatusEntry 3 }
 
-wrsPortStatusMode OBJECT-TYPE
+wrsPortStatusConfiguredMode OBJECT-TYPE
     SYNTAX         INTEGER {
                         unknown(0),
                         master(1),
@@ -1492,7 +1492,7 @@ wrsPortStatusMode OBJECT-TYPE
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
-            "Whether the port is master or slave"
+            "Whether the port is configured as master, slave, non-wr or auto"
     ::= { wrsPortStatusEntry 4 }
 
 wrsPortStatusLocked OBJECT-TYPE
diff --git a/userspace/snmpd/wrsPortStatusTable.c b/userspace/snmpd/wrsPortStatusTable.c
index c635f679f..8cd693f12 100644
--- a/userspace/snmpd/wrsPortStatusTable.c
+++ b/userspace/snmpd/wrsPortStatusTable.c
@@ -55,9 +55,13 @@ time_t wrsPortStatusTable_data_fill(unsigned int *n_rows)
 					wrsPortStatusTable_array[i].port_name);
 			/* No need to copy all ports structures, only what
 			 * we're interested in.
-			 * Keep value 0 for Not available */
+			 * Keep value 0 for Not available
+			 * values defined as WRS_PORT_STATUS_LINK_*
+			*/
 			wrsPortStatusTable_array[i].link_up =
 					1 + state_up(port_state->state);
+			 /* values defined as
+			  * WRS_PORT_STATUS_CONFIGURED_MODE_* */
 			wrsPortStatusTable_array[i].port_mode =
 							port_state->mode;
 			if (port_state->state == HAL_PORT_STATE_DISABLED) {
diff --git a/userspace/snmpd/wrsPortStatusTable.h b/userspace/snmpd/wrsPortStatusTable.h
index 17020a56f..9cd2991fb 100644
--- a/userspace/snmpd/wrsPortStatusTable.h
+++ b/userspace/snmpd/wrsPortStatusTable.h
@@ -8,6 +8,15 @@
 #define WRS_PORT_STATUS_SFP_ERROR_SFP_ERROR 2	/* error */
 #define WRS_PORT_STATUS_SFP_ERROR_PORT_DOWN 3	/* ok */
 
+#define WRS_PORT_STATUS_LINK_DOWN 1
+#define WRS_PORT_STATUS_LINK_UP 2
+
+#define WRS_PORT_STATUS_CONFIGURED_MODE_MASTER 1
+#define WRS_PORT_STATUS_CONFIGURED_MODE_SLAVE 2
+#define WRS_PORT_STATUS_CONFIGURED_MODE_NON_WR 3
+#define WRS_PORT_STATUS_CONFIGURED_MODE_AUTO 4
+
+
 struct wrsPortStatusTable_s {
 	uint32_t index;		/* not reported, index fields has to be marked
 				 * as not-accessible in MIB */
-- 
GitLab