Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
86
Issues
86
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Software
Commits
ec448dda
Commit
ec448dda
authored
Jul 23, 2019
by
Adam Wujek
💬
Committed by
Grzegorz Daniluk
Jan 08, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
userspace/snmp: WIP add HA related changes to wrsPtpInstanceTable
Signed-off-by:
Adam Wujek
<
adam.wujek@cern.ch
>
parent
fb5c53f8
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
250 additions
and
94 deletions
+250
-94
WR-SWITCH-MIB.txt
userspace/snmpd/WR-SWITCH-MIB.txt
+175
-72
wrsPtpInstanceTable.c
userspace/snmpd/wrsPtpInstanceTable.c
+57
-17
wrsPtpInstanceTable.h
userspace/snmpd/wrsPtpInstanceTable.h
+18
-5
No files found.
userspace/snmpd/WR-SWITCH-MIB.txt
View file @
ec448dda
...
...
@@ -1175,7 +1175,7 @@ wrsStartCntLdap OBJECT-TYPE
STATUS current
DESCRIPTION
"Number of LDAP daemon starts"
::= { wrsStartCntGroup
9
}
::= { wrsStartCntGroup
10
}
-- wrsSpllState (.7.3)
wrsSpllState OBJECT IDENTIFIER ::= { wrsExpertStatus 3 }
...
...
@@ -2615,7 +2615,7 @@ wrsPstatsHCNICTXFrames OBJECT-TYPE
-- wrsPtpInstanceTable (.7.8)
wrsPtpInstanceTable OBJECT-TYPE
SYNTAX SEQUENCE OF
w
rsPtpInstanceEntry
SYNTAX SEQUENCE OF
W
rsPtpInstanceEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
...
...
@@ -2640,15 +2640,28 @@ WrsPtpInstanceEntry ::=
wrsPtpInstancePortInstance INTEGER,
wrsPtpInstancePortName DisplayString,
wrsPtpInstanceState INTEGER,
wrsPtpInstance
StateNext
INTEGER,
wrsPtpInstance
Role
INTEGER,
wrsPtpInstance
MasterOnly
INTEGER,
wrsPtpInstance
ExtPortCfgDesSt
INTEGER,
wrsPtpInstanceMechanism INTEGER,
wrsPtpInstanceProto INTEGER,
wrsPtpInstanceExt INTEGER,
wrsPtpInstanceProfile INTEGER,
wrsPtpInstanceExtension INTEGER,
wrsPtpInstanceAsymEnabled INTEGER,
wrsPtpInstanceAsymConstAsym INTEGER,
wrsPtpInstanceAsymScDelayCoef Counter64,
wrsPtpInstanceAsymScDelayCoefHR DisplayString,
wrsPtpInstanceTSCorrEgressLat Counter64,
wrsPtpInstanceTSCorrEgressLatPS Counter64,
wrsPtpInstanceTSCorrIngLat Counter64,
wrsPtpInstanceTSCorrIngLatPS Counter64,
wrsPtpInstanceTSCorrSemistLat Counter64,
wrsPtpInstanceTSCorrSemistLatPS Counter64,
wrsPtpInstancePtpSupport INTEGER,
wrsPtpInstanceExtEnabled INTEGER,
wrsPtpInstanceProtoDetectState INTEGER,
wrsPtpInstancePeerMac PhysAddress,
wrsPtpInstancePeerVid INTEGER,
wrsPtpInstanceVlanNum INTEGER,
wrsPtpInstanceVlanListStr
INTEGER,
wrsPtpInstanceVlanListStr
DisplayString --check--
}
wrsPtpInstancePortIndex OBJECT-TYPE
...
...
@@ -2736,124 +2749,214 @@ wrsPtpInstanceState OBJECT-TYPE
"Name of instance"
::= { wrsPtpInstanceEntry 7 }
wrsPtpInstance
StateNext
OBJECT-TYPE
wrsPtpInstance
MasterOnly
OBJECT-TYPE
SYNTAX INTEGER {
na(0),
initializing(1),
faulty(2),
disabled(3),
listening(4),
preMaster(5),
master(6),
passive(7),
uncalibrated(8),
slave(9),
wrsPresent(100),
wrsSLock(101),
wrsMLock(102),
wrsLocked(103),
wrsCalibration(104),
wrsCalibrated(105),
wrsRespCalibReq(106),
wrsWrLinkOn(107),
wrPortCalibration0(108),
wrPortCalibration1(109),
wrPortCalibration2(110),
wrPortCalibration3(111),
wrPortCalibration4(112),
wrPortCalibration5(113),
wrPortCalibration6(114),
wrPortCalibration7(115),
wrPortCalibration8(116),
wrsAbscal(117)
x(1)
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
Name of instance
"
"
????
"
::= { wrsPtpInstanceEntry 8 }
wrsPtpInstance
Role
OBJECT-TYPE
wrsPtpInstance
ExtPortCfgDesSt
OBJECT-TYPE
SYNTAX INTEGER {
na(0),
auto(1),
master(2),
slave(3)
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
Role of instance
"
"
????
"
::= { wrsPtpInstanceEntry 9 }
wrsPtpInstanceMechanism OBJECT-TYPE
SYNTAX INTEGER {
na(0),
e2e(1),
p2p(2),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
Mechanism used by an instance
"
"
????
"
::= { wrsPtpInstanceEntry 10 }
wrsPtpInstancePro
to
OBJECT-TYPE
wrsPtpInstancePro
file
OBJECT-TYPE
SYNTAX INTEGER {
na(0),
raw(1),
udp(2),
vlan(3),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
Protocol used by an instance
"
"
????
"
::= { wrsPtpInstanceEntry 11 }
wrsPtpInstanceExt OBJECT-TYPE
wrsPtpInstanceExt
ension
OBJECT-TYPE
SYNTAX INTEGER {
na(0),
none(1),
wr(2),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
Extension used by an instance
"
"
????
"
::= { wrsPtpInstanceEntry 12 }
wrsPtpInstanceAsymEnabled OBJECT-TYPE
SYNTAX INTEGER {
na(0),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 13 }
wrsPtpInstanceAsymConstAsym OBJECT-TYPE
SYNTAX INTEGER {
na(0),
x(1)
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 14 }
wrsPtpInstanceAsymScDelayCoef OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 15 }
wrsPtpInstanceAsymScDelayCoefHR OBJECT-TYPE
SYNTAX DisplayString --size--
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The software version, as returned from 'git describe' at build time"
::= { wrsPtpInstanceEntry 16 }
wrsPtpInstanceTSCorrEgressLat OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 17 }
wrsPtpInstanceTSCorrEgressLatPS OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 18 }
wrsPtpInstanceTSCorrIngLat OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 19 }
wrsPtpInstanceTSCorrIngLatPS OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 20 }
wrsPtpInstanceTSCorrSemistLat OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 21 }
wrsPtpInstanceTSCorrSemistLatPS OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 22 }
wrsPtpInstancePtpSupport OBJECT-TYPE
SYNTAX INTEGER {
na(0),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 23 }
wrsPtpInstanceExtEnabled OBJECT-TYPE
SYNTAX INTEGER {
na(0),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 24 }
wrsPtpInstanceProtoDetectState OBJECT-TYPE
SYNTAX INTEGER {
na(0),
--????--
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"????"
::= { wrsPtpInstanceEntry 25 }
wrsPtpInstancePeerMac OBJECT-TYPE
SYNTAX PhysAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"VID used by an instance"
::= { wrsPtpInstanceEntry
13
}
::= { wrsPtpInstanceEntry
26
}
wrsPtpInstancePeerVid OBJECT-TYPE
SYNTAX Integer
SYNTAX Integer
32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"VID used by an instance"
::= { wrsPtpInstanceEntry
14
}
::= { wrsPtpInstanceEntry
27
}
wrsPtpInstanceVlanNum OBJECT-TYPE
SYNTAX Integer
SYNTAX Integer
32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of VLANs used by an instance"
::= { wrsPtpInstanceEntry
15
}
::= { wrsPtpInstanceEntry
28
}
wrsPtpInstanceVlanListStr OBJECT-TYPE
SYNTAX
Integer
SYNTAX
DisplayString --size?--
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Coma separated list of VLANs used by an instance"
::= { wrsPtpInstanceEntry
16
}
::= { wrsPtpInstanceEntry
29
}
--wrsNetworking
--Configuration
...
...
userspace/snmpd/wrsPtpInstanceTable.c
View file @
ec448dda
...
...
@@ -3,6 +3,11 @@
#include "wrsPtpInstanceTable.h"
struct
wrsPtpInstanceTable_s
wrsPtpInstanceTable_array
[
PP_MAX_LINKS
];
// global:
// defaultDS_t:
// --externalPortConfigurationEnabled
// --slaveOnly
static
struct
pickinfo
wrsPtpInstanceTable_pickinfo
[]
=
{
/* Warning: strings are a special case for snmp format */
...
...
@@ -13,15 +18,31 @@ static struct pickinfo wrsPtpInstanceTable_pickinfo[] = {
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstancePortInstance
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_OCTET_STR
,
wrsPtpInstancePortName
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceState
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceStateNext
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceRole
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceMasterOnly
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceExtPortCfgDesSt
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceMechanism
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceProto
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceExt
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceProfile
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceExtension
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceAsymEnabled
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceAsymConstAsym
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceAsymScDelayCoef
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_OCTET_STR
,
wrsPtpInstanceAsymScDelayCoefHR
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceTSCorrEgressLat
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceTSCorrEgressLatPS
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceTSCorrIngLat
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceTSCorrIngLatPS
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceTSCorrSemistLat
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_COUNTER64
,
wrsPtpInstanceTSCorrSemistLatPS
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstancePtpSupport
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceExtEnabled
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceProtoDetectState
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_OCTET_STR
,
wrsPtpInstancePeerMac
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstancePeerVid
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_INTEGER
,
wrsPtpInstanceVlanNum
),
FIELD
(
wrsPtpInstanceTable_s
,
ASN_OCTET_STR
,
wrsPtpInstanceVlanListStr
),
};
static
inline
struct
hal_port_state
*
pp_wrs_lookup_port
(
char
*
name
)
...
...
@@ -44,6 +65,7 @@ time_t wrsPtpInstanceTable_data_fill(unsigned int *n_rows)
struct
wrsPtpInstanceTable_s
*
i_a
;
struct
pp_instance
*
ppsi_i
;
char
*
tmp_name
;
portDS_t
*
portDS_i
;
struct
hal_port_state
*
p
;
int
phys_port
;
int
last_port
=
0
;
...
...
@@ -117,11 +139,29 @@ time_t wrsPtpInstanceTable_data_fill(unsigned int *n_rows)
i_a
[
i
].
wrsPtpInstancePortInstance
=
instance_on_port
;
i_a
[
i
].
wrsPtpInstanceState
=
ppsi_i
->
state
;
i_a
[
i
].
wrsPtpInstanceStateNext
=
ppsi_i
->
next_state
;
i_a
[
i
].
wrsPtpInstanceRole
=
ppsi_i
->
role
+
1
;
i_a
[
i
].
wrsPtpInstanceMechanism
=
ppsi_i
->
mech
+
1
;
i_a
[
i
].
wrsPtpInstanceProto
=
ppsi_i
->
proto
+
1
;
i_a
[
i
].
wrsPtpInstanceExt
=
ppsi_i
->
cfg
.
ext
+
1
;
/* follow portDS */
portDS_i
=
(
portDS_t
*
)
wrs_shm_follow
(
ppsi_head
,
ppsi_i
->
portDS
);
if
(
portDS_i
)
i_a
[
i
].
wrsPtpInstanceMasterOnly
=
portDS_i
->
masterOnly
;
i_a
[
i
].
wrsPtpInstanceExtPortCfgDesSt
=
ppsi_i
->
externalPortConfigurationPortDS
.
desiredState
;
i_a
[
i
].
wrsPtpInstanceMechanism
=
ppsi_i
->
delayMechanism
;
i_a
[
i
].
wrsPtpInstanceProfile
=
ppsi_i
->
cfg
.
profile
;
i_a
[
i
].
wrsPtpInstanceExtension
=
ppsi_i
->
protocol_extension
;
i_a
[
i
].
wrsPtpInstanceAsymEnabled
=
ppsi_i
->
asymmetryCorrectionPortDS
.
enable
+
1
;
i_a
[
i
].
wrsPtpInstanceAsymConstAsym
=
ppsi_i
->
asymmetryCorrectionPortDS
.
constantAsymmetry
;
i_a
[
i
].
wrsPtpInstanceAsymScDelayCoef
=
ppsi_i
->
asymmetryCorrectionPortDS
.
scaledDelayCoefficient
;
//i_a[i].wrsPtpInstanceAsymScDelayCoefHR = ppsi_i->asymmetryCorrectionPortDS.scaledDelayCoefficient (string)
i_a
[
i
].
wrsPtpInstanceTSCorrEgressLat
=
ppsi_i
->
timestampCorrectionPortDS
.
egressLatency
;
// i_a[i].wrsPtpInstanceTSCorrEgressLatPS = ppsi_i->timestampCorrectionPortDS.egressLatency (ps)
i_a
[
i
].
wrsPtpInstanceTSCorrIngLat
=
ppsi_i
->
timestampCorrectionPortDS
.
ingressLatency
;
// i_a[i].wrsPtpInstanceTSCorrIngLatPS = ppsi_i->timestampCorrectionPortDS.ingressLatency (ps)
i_a
[
i
].
wrsPtpInstanceTSCorrSemistLat
=
ppsi_i
->
timestampCorrectionPortDS
.
semistaticLatency
;
// i_a[i].wrsPtpInstanceTSCorrSemistLatPS = ppsi_i->timestampCorrectionPortDS.semistaticLatency (ps)(bitslide)
i_a
[
i
].
wrsPtpInstancePtpSupport
=
ppsi_i
->
ptp_support
;
i_a
[
i
].
wrsPtpInstanceExtEnabled
=
ppsi_i
->
extState
;
i_a
[
i
].
wrsPtpInstanceProtoDetectState
=
ppsi_i
->
pdstate
;
memcpy
(
i_a
[
i
].
wrsPtpInstancePeerMac
,
ppsi_i
->
peer
,
ETH_ALEN
);
i_a
[
i
].
wrsPtpInstancePeerVid
=
ppsi_i
->
peer_vid
;
...
...
userspace/snmpd/wrsPtpInstanceTable.h
View file @
ec448dda
...
...
@@ -19,11 +19,24 @@ struct wrsPtpInstanceTable_s {
int
wrsPtpInstancePortInstance
;
/* serial of instance running on a given port */
char
wrsPtpInstancePortName
[
16
];
/* port name on which ptp instance is running (wriX) */
int
wrsPtpInstanceState
;
int
wrsPtpInstanceStateNext
;
int
wrsPtpInstanceRole
;
int
wrsPtpInstanceMechanism
;
int
wrsPtpInstanceProto
;
int
wrsPtpInstanceExt
;
int
wrsPtpInstanceMasterOnly
;
int
wrsPtpInstanceExtPortCfgDesSt
;
int
wrsPtpInstanceMechanism
;
/* ENDelayMechanism */
int
wrsPtpInstanceProfile
;
int
wrsPtpInstanceExtension
;
int
wrsPtpInstanceAsymEnabled
;
int
wrsPtpInstanceAsymConstAsym
;
int
wrsPtpInstanceAsymScDelayCoef
;
char
wrsPtpInstanceAsymScDelayCoefHR
[
64
];
int64_t
wrsPtpInstanceTSCorrEgressLat
;
int64_t
wrsPtpInstanceTSCorrEgressLatPS
;
int64_t
wrsPtpInstanceTSCorrIngLat
;
int64_t
wrsPtpInstanceTSCorrIngLatPS
;
int64_t
wrsPtpInstanceTSCorrSemistLat
;
int64_t
wrsPtpInstanceTSCorrSemistLatPS
;
int
wrsPtpInstancePtpSupport
;
int
wrsPtpInstanceExtEnabled
;
int
wrsPtpInstanceProtoDetectState
;
char
wrsPtpInstancePeerMac
[
ETH_ALEN
];
int
wrsPtpInstancePeerVid
;
int
wrsPtpInstanceVlanNum
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment