RFC 4939
Definitions of Managed Objects for iSNS (Internet Storage Name Service)
RFC 4939 π Definitions of Managed Objects for iSNS (Internet Storage Name Service)
okay so bestie, RFC 4939 is giving Standards Track energy β¨, and it's all about how to manage iSNS with SNMP. It was published in July 2007 by the IETF Trust's crew, and the authors are K. Gibbons (2Wire, Inc.), G. Ramkumar (SnapTell, Inc.), and S. Kipp (Brocade, Inc.). It doesn't list any obsoletes or updates, so it's not replacing or changing anything else. It's just a new MIB module, and it's iconic π
Status of This Memo π
ok so this document specifies an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements π«Ά If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). And distribution of this memo is unlimited, so share it with everyone πΈ
Copyright Notice Β©οΈ
Copyright (C) The IETF Trust (2007).
Abstract π¦
the iSNS (Internet Storage Name Service) protocol gives storage name service functionality on an IP network that's being used for iSCSI (Internet Small Computer System Interface) or iFCP (Internet Fibre Channel Protocol) storage. this doc gives you a way to monitor multiple iSNS Servers, including info about the registered objects in an iSNS Server π§
Table of Contents π
1. The Internet-Standard Management Framework ......................3
2. Introduction ....................................................3
2.1. Requirement Levels .........................................3
3. Technical Description ...........................................4
3.1. iSNS Registered Objects ....................................4
3.2. iSNS MIB Structure .........................................5
3.3. iSNS Server Info ...........................................5
3.3.1. Control Node Information ............................6
3.3.2. Discovery Domain Set (DDS) ..........................6
3.3.3. Discovery Domain (DD) ...............................6
3.3.4. Registered Storage Objects ..........................6
3.3.4.1. Registered Entities ........................6
3.3.4.2. Registered Portals .........................6
3.3.4.3. Registered Portal Groups ...................7
3.3.4.4. Registered iSCSI Nodes .....................7
3.3.4.5. Registered FC Ports ........................7
3.3.4.6. Registered FC Nodes ........................7
3.4. Multiple Server Instances ..................................7
3.5. iSNS Notifications .........................................7
4. MIB References ..................................................7
5. MIB Module ......................................................8
6. IANA Considerations ............................................75
7. Security Considerations ........................................76
8. Normative References ...........................................77
9. Informative References .........................................78
10. Acknowledgements ..............................................78
1. The Internet-Standard Management Framework β¨
if you want the full tea on the current Internet-Standard Management Framework, go read section 7 of RFC 3410 [RFC3410] π
managed objects are accessed through a virtual information store called the Management Information Base, or MIB ποΈ MIB objects are usually accessed with the Simple Network Management Protocol (SNMP). objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). this memo specifies a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] π
2. Introduction π
ok so the iSNS protocol, described in RFC 4171 [RFC4171], can be used by IP-based storage devices for dynamic registration and discovery of other storage devices on the network π«Ά it can group devices into storage Discovery Domains, and group Discovery Domains into Discovery Domain Sets. the iSNS MIB is designed so Simple Network Management Protocol (SNMP) can be used to monitor iSNS servers that support iSCSI [RFC3720] and iFCP [RFC4172] π
2.1. Requirement Levels π
the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π
3. Technical Description π
3.1. iSNS Registered Objects π
this entity relationship figure shows the objects that can be registered in the iSNS, and how they're connected to each other π¦
+--------------+ +-----------+
| NETWORK |1 *| |
| ENTITY |----| PORTAL |
| | | |
+--------------+ +-----------+
|1 |1 |*
| | |
| |* |
| +----------+ |
| | PORTAL | |
| | GROUP | |
| +----------+ |
| |* |
| | |
|* |1 |*
+----------+ +-------------+ +----------+ +-----------+
| FC |1 *| STORAGE |* *| DISCOVERY|* *| DISCOVERY |
| DEVICE |----| NODE |----| DOMAIN |----| DOMAIN |
| | | | | | | SET |
+----------+ +-------------+ +----------+ +-----------+
* represents 0 to many possible relationships
3.2. iSNS MIB Structure π§©
the MIB is split into sections for iSNS server info, iSNS server registered objects info, and iSNS notifications π
+--------------+ +--------------+
| MANAGED iSNS |1 *| CONTROL NODE |
| SERVER |----| INFO |
| INFO | +--------------+
+--------------+
|1 |1
| | +--------------+
| | *| DDS AND DD |
| +------| INFO |
| | |
| +--------------+
|
| +-------------+
| *| REGISTERED |
+------------| ENTITIES |
| INFO |
+-------------+
+-----------------+
| iSNS |
| NOTIFICATION |
| INFO |
+-----------------+
the sections you're required to implement are the ones for iSNS Server management and notification π₯
3.3. iSNS Server Info π₯οΈ
the isnsServerInfo section lets you monitor multiple iSNS Server instances π«§ the isnsServerTable table gives info on each server instance, and it's indexed by the variable isnsServerIndex. the table shows the current settings for each iSNS server being managed. you can figure out the network address, plus the TCP and UDP ports a server uses for iSNSP registrations and queries, from this table π
the count of objects registered in each iSNS server instance is in the table isnsNumObjectsTable. it gives a summary of the number of Discovery Domain Sets, Discovery Domains, Entities, Portals, Portal Groups, iSCSI Nodes, and iFCP FC Nodes and Ports π
3.3.1. Control Node Information π‘οΈ
as the iSNS specification defines, Control Nodes are objects that have been registered with the server and are allowed to manage the iSNS server. they're identified by their iSCSI Node Name or iFCP FC Port Name. the isnsControlNodeInfo section of the MIB lets you view the currently registered set of iSCSI and iFCP control nodes π
3.3.2. Discovery Domain Set (DDS) πΈ
the isnsDdsInfo section gives info on each registered DDS, plus the Discovery Domain members of each DDS, for each iSNS Server instance being managed. DDSs are a way to group multiple Discovery Domains so they're easier to control π§ as the iSNS Specification [RFC4171] describes, a DDS can be enabled or disabled, and that in turn enables or disables its member Discovery Domains. Discovery Domains inside an enabled DDS are then enforced by an iSNS Server β¨
3.3.3. Discovery Domain (DD) πΊοΈ
the isnsDdInfo section gives info on each registered DD, and its DD members, for each iSNS Server instance being managed. DDs are collections of storage nodes and portals that are allowed to discover one another π«Ά DD members can be iSCSI nodes, Entity Portals, or iFCP nodes π¦
3.3.4. Registered Storage Objects π¦
the isnsReg section gives info on the registered storage objects for a specific iSNS Server instance. it's split into subsections for Entities, Portals, and iSCSI Nodes, plus iFCP Port and Node info π
3.3.4.1. Registered Entities π
the isnsRegEntityInfo section gives info on the registered entities. Entities are collections of storage nodes and portals π
3.3.4.2. Registered Portals πͺ
the isnsRegPortalInfo section gives info on the registered portals for a specific iSNS Server instance. Portals are logical IP-Address, TCP/UDP Port pairs that give access to storage nodes in the associated Entity π
3.3.4.3. Registered Portal Groups π§Ί
the isnsRegPortalGroupInfo section gives info on the registered portal groups for a specific iSNS Server instance. as iSCSI [RFC3720] describes, Portal Groups map Portals to the iSCSI Storage Nodes in an Entity π
3.3.4.4. Registered iSCSI Nodes πΎ
the isnsRegIscsiNodeInfo section gives info on the registered iSCSI Nodes for a specific iSNS Server instance. iSCSI nodes are individual storage targets or initiators π―
3.3.4.5. Registered FC Ports π
the isnsRegFcPortInfo section gives info on the registered FC Ports for a specific iSNS Server instance. FC Ports are ports tied to an iFCP gateway π¦
3.3.4.6. Registered FC Nodes π§Έ
the isnsRegFcNodeInfo section gives info on the registered FC Nodes for a specific iSNS Server instance. FC Nodes are individual storage devices tied to an iFCP gateway π«§
3.4. Multiple Server Instances ποΈ
the agent supports managing multiple instances of iSNS servers. as section 3.3 describes, each managed iSNS server instance has an entry in the table isnsServerTable π
3.5. iSNS Notifications π
the isnsNotification section provides SNMP notifications for iSNS Server state changes π¨
4. MIB References π
the following MIB module has IMPORTS from [RFC2578], [RFC2579], [RFC2580], [RFC3411], [RFC4001], [RFC4044], and [RFC4133]. in REFERENCE clauses, it also refers to [RFC3720], [RFC4171], and [RFC4172] π
5. MIB Module π§
ISNS-MIB DEFINITIONS ::= BEGIN
IMPORTS
-- From RFC 2578
MODULE-IDENTITY,
OBJECT-TYPE,
NOTIFICATION-TYPE,
Integer32,
Unsigned32,
Gauge32,
mib-2
FROM SNMPv2-SMI
-- From RFC 2579
TEXTUAL-CONVENTION,
TimeStamp,
TruthValue
FROM SNMPv2-TC
okay so we're still deep in the MIB module, and this chunk is where the textual conventions live, bestie π§ each one is a tiny custom type with its own little rules π
Discovery Domain Set IDs, Discovery Domain IDs, and portal security bits are all in here, and they all cite back to RFC 4171 so you can check the source β¨
-- From RFC 2580
OBJECT-GROUP,
MODULE-COMPLIANCE,
NOTIFICATION-GROUP
FROM SNMPv2-CONF
-- From RFC 3411
SnmpAdminString
FROM SNMP-FRAMEWORK-MIB
-- From RFC 4001
InetAddressType,
InetAddress,
InetPortNumber
FROM INET-ADDRESS-MIB
-- From RFC 4044
FcNameIdOrZero,
FcAddressIdOrZero
FROM FC-MGMT-MIB
-- From RFC 4133
PhysicalIndex
FROM ENTITY-MIB
;
isnsMIB MODULE-IDENTITY
LAST-UPDATED "200707110000Z"
ORGANIZATION "IETF IPS Working Group"
CONTACT-INFO "
Attn: Kevin Gibbons
2Wire, Inc.
1704 Automation Parkway
San Jose, CA 95131
USA
Tel: +1 408-895-1387
Fax: +1 408-428-9590
Email: kgibbons@yahoo.com
G.D. Ramkumar
SnapTell, Inc.
2741 Middlefield Rd, Suite 200
Palo Alto, CA 94306
USA
Tel: +1 650-326-7627
Fax: +1 650-326-7620
Email: gramkumar@stanfordalumni.org
Scott Kipp
Brocade
4 McDATA Pkwy
Broomfield, CO 80021
USA
Tel: +1 720-558-3452
Fax: +1 720-558-8999
Email: skipp@brocade.com
"
DESCRIPTION
"This module defines management information
specific to internet Storage Name Service
(iSNS) management.
Copyright (C) The IETF Trust (2007).
This version of this MIB module is part
of RFC 4939; see the RFC itself for full
legal notices."
REVISION "200707110000Z"
DESCRIPTION
"Initial version of iSNS Management Module.
This MIB published as RFC 4939."
::= { mib-2 163 }
--
-- Textual Conventions
--
IsnsDiscoveryDomainSetId ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The unique Discovery Domain Set Identifier associated with a
Discovery Domain Set (DDS)."
REFERENCE "RFC 4171, Section 6.11.1.1"
SYNTAX Unsigned32 ( 1 .. 4294967295 )
IsnsDdsStatusType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The status of a Discovery Domain Set (DDS) registered in the
iSNS. The initially assigned values are below:
Bit Status
--------- ---------
31 DDS Enabled
All others RESERVED
Setting a bit to 1 indicates the feature is enabled.
Otherwise, it is disabled. The future assignment of any of
the reserved values will be documented in a revision of
RFC 4171."
REFERENCE "RFC 4171, Section 6.11.1.3"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
reserved24(24), reserved25(25), reserved26(26),
reserved27(27), reserved28(28), reserved29(29),
reserved30(30),
ddsEnabled (31)
}
IsnsDiscoveryDomainId ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The unique Discovery Domain Identifier (DD_ID) associated
with each Discovery Domain (DD). This is used to
uniquely index and reference a DD."
REFERENCE "RFC 4171, Section 6"
SYNTAX Unsigned32 ( 1 .. 4294967295 )
IsnsDdFeatureType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This type defines the features that each Discovery Domain
(DD) has.
Bit Status
--------- ---------
31 Boot List
All others RESERVED
Boot List: this feature indicates that the targets
in this DD provide boot capabilities for the member
initiators.
Setting a bit to 1 indicates the feature is enabled.
Otherwise, it is disabled. The future assignment of any of
the reserved values will be documented in a revision of
RFC 4171."
REFERENCE "RFC 4171, Section 6.11.2.9"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
reserved24(24), reserved25(25), reserved26(26),
reserved27(27), reserved28(28), reserved29(29),
reserved30(30),
bootlist(31)
}
IsnsDdDdsModificationType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The methods that can be used to modify the Discovery
Domain and Discovery Domain Sets in an iSNS Server
instance.
Bit Flag Description
--------- ------------------------------------
0 Control Nodes are allowed
1 Target iSCSI Nodes are allowed
2 Initiator iSCSI Nodes are allowed
3 Target iFCP Ports are allowed
4 Initiator iFCP Ports are allowed
Setting a bit to 1 indicates the feature is
enabled. Otherwise, it is disabled."
REFERENCE "RFC 4171, Section 2.4"
SYNTAX BITS {
controlNode(0),
targetIscsiNode(1),
initiatorIscsiNode(2),
targetIfcpNode(3),
initiatorIfcpNode(4)
}
IsnsEntityIndexIdOrZero ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The identifier for the unique integer Entity Index
associated with an iSNS registered Entity object, and the
value zero. The value zero is object-specific and MUST
therefore be defined as part of the description of any
object that uses this syntax. Examples of the usage of
zero might include situations where the Entity is unknown,
or not yet registered in the iSNS server. If a value of
zero is not valid for an object, then that MUST be
indicated."
REFERENCE "RFC 4171, Section 6"
SYNTAX Unsigned32 ( 0 .. 4294967295 )
IsnsPortalGroupIndexId ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The identifier for the unique integer Portal Group Index
associated with an iSNS registered Portal Group object."
REFERENCE "RFC 4171, Section 6"
SYNTAX Unsigned32 ( 1 .. 4294967295 )
IsnsPortalIndexId ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The identifier for the unique integer Portal Index
associated with an iSNS registered Portal object. The
index is created by the iSNS Server for mapping between
registered objects. The Portal Index used for a specific
portal IP-address and port number pair is only persistent
across reboots for portals that have been explicitly added
to a Discovery Domain (DD). If a portal is not explicitly
registered in any DD, then the index used for a portal can
change after a server reinitialization."
REFERENCE "RFC 4171, Section 6"
SYNTAX Unsigned32 ( 1 .. 4294967295 )
IsnsPortalPortTypeId ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The UDP or TCP port type being used by a Portal for an
Entity."
REFERENCE "RFC 4171, Section 6.3.2"
SYNTAX INTEGER { udp(1), tcp(2) }
IsnsPortalGroupTagIdOrNull ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The Portal Group Tag (PGT) represents an association
between a Portal and iSCSI Node using the value range
0 to 65535. A PGT with no association is a NULL
value. The value of -1 indicates a NULL value."
REFERENCE "RFC 4171, Section 6.5.4, and RFC 3720"
SYNTAX Integer32 ( -1 .. 65535 )
IsnsPortalSecurityType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicates security attribute settings for a Portal that is
registered in the iSNS server. The bitmapVALID field must
be set in order for the contents to be considered valid
information. The definitions of the bit fields are based
on RFC 4171. The initial representation of each bit setting
(0 or 1) is indicated below.
Bit Flag Description
--------- ------------------------------------
25 1 = Tunnel Mode Preferred; 0 = No Preference
26 1 = Transport Mode Preferred; 0 = No
Preference
27 1 = PFS Enabled; 0 = PFS Disabled
28 1 = Aggressive Mode Enabled; 0 = Disabled
29 1 = Main Mode Enabled; 0 = MM Disabled
30 1 = IKE/IPsec Enabled; 0 = IKE/IPsec
Disabled
31 1 = Bitmap VALID; 0 = INVALID
All others RESERVED
The future assignment of any of the reserved values will be
documented in a revision of RFC 4171."
REFERENCE "RFC 4171, Section 6.3.9"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
reserved24(24),
tunnelModePreferred(25),
transportModePreferred(26),
pfsEnabled(27),
agressiveModeEnabled(28),
mainModeEnabled(29),
ikeIPsecEnabled(30),
bitmapVALID(31)
}
okay bestie, this is where the MIB gets real π§ we're in the textual conventions now, the little custom types that make the whole thing readable. just know the actual definitions below are code, so they stay exactly as written π
IsnsNodeIndexId ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The identifier for the unique integer Node Index associated
with a storage node. This index provides a 1-to-1 mapping
to an iSCSI node name. The iSCSI node name maximum length
is too long to be used for an index directly. The iSCSI
node index used for a specific iSCSI node name is identical
in all DDs, and is persistent across server
reinitializations when the iSCSI node is a member of a
Discovery Domain (DD) or is registered as a Control Node.
Furthermore, index values for recently deregistered objects
SHOULD NOT be reused in the short term."
REFERENCE "RFC 4171, Section 6.4.5"
SYNTAX Unsigned32 ( 1 .. 4294967295 )
IsnsIscsiNodeType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The iSCSI Node Type defines the functions of the registered
object. The definitions of each setting are defined in
RFC 4171.
Bit Node Type
--------- ---------
29 Control
30 Initiator
31 Target
All others RESERVED
Setting a bit to 1 indicates the node has the corresponding
characteristics. The future assignment of any of the
reserved values will be documented in a revision of
RFC 4171."
REFERENCE "RFC 4171, Section 6.4.2"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
reserved24(24), reserved25(25), reserved26(26),
reserved27(27), reserved28(28),
control(29),
initiator(30),
target(31)
}
IsnsFcClassOfServiceType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This defines the Fibre Channel Class of Service types
that are supported by the registered port. The
definitions are as defined in RFC 4171.
Bit FC COS Type
--------- ----------------
28 Fibre Channel Class 3 Supported
29 Fibre Channel Class 2 Supported
All others RESERVED
Setting a bit to 1 indicates the class of service is
supported. The future assignment of any of the
reserved values will be documented in a revision of
RFC 4171."
REFERENCE "RFC 4171, Section 6.6.8"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
reserved24(24), reserved25(25), reserved26(26),
reserved27(27),
class3(28),
class2(29)
}
IsnsIscsiScnType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The iSCSI Node State Change Notification (SCN) values
for a node as defined in RFC 4171.
Bit Description
------------ ----------------
24 Initiator and self information only
25 Target and self information only
26 Management registration/SCN
27 Object removed
28 Object added
29 Object updated
30 DD or DDS member removed (Mgmt
Reg/SCN only)
31 (Lsb) DD or DDS member added (Mgmt
Reg/SCN only)
All others Reserved
Setting a bit to 1 indicates that type of SCN is enabled.
The future assignment of any of the reserved values will be
documented in a revision of RFC 4171."
REFERENCE "RFC 4171, Section 6.4.4"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
initiatorAndSelfOnly(24),
targetAndSelfOnly(25),
managementRegistrationScn(26),
objectRemoved(27),
objectAdded(28),
objectUpdated(29),
ddOrDdsMemberRemoved(30),
ddOrDdsMemberAdded(31)
}
IsnsIfcpScnType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The iFCP State Change Notification (SCN) values for an iFCP
object as defined in RFC 4171.
Bit Description
------------ ----------------
24 Initiator and self information only
25 Target and self information only
26 Management registration/SCN
27 Object removed
28 Object added
29 Object updated
30 DD or DDS member removed (Mgmt
Reg/SCN only)
31 (Lsb) DD or DDS member added (Mgmt
Reg/SCN only)
All others Reserved
Setting a bit to 1 indicates that type of SCN is enabled.
The future assignment of any of the reserved values will be
documented in a revision of RFC 4171."
REFERENCE "RFC 4171, Section 6.6.12"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
initiatorAndSelfOnly(24),
targetAndSelfOnly(25),
managementRegistrationScn(26),
objectRemoved(27),
objectAdded(28),
objectUpdated(29),
ddOrDdsMemberRemoved(30),
ddOrDdsMemberAdded(31)
}
IsnsFcPortRoleType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The FC Port Role defines the functions of the registered
object. The definitions of each setting are defined in
RFC 4171.
Bit Port Role
--------- ---------
29 Control
30 FCP Initiator
31 FCP Target
All others RESERVED
Setting a bit to 1 indicates the port has the corresponding
characteristics. The future assignment of any of the
reserved values will be documented in a revision of
RFC 4171."
REFERENCE "RFC 4171, Section 6.6.13"
SYNTAX BITS {
reserved0(0), reserved1(1), reserved2(2),
reserved3(3), reserved4(4), reserved5(5),
reserved6(6), reserved7(7), reserved8(8),
reserved9(9), reserved10(10), reserved11(11),
reserved12(12), reserved13(13), reserved14(14),
reserved15(15), reserved16(16), reserved17(17),
reserved18(18), reserved19(19), reserved20(20),
reserved21(21), reserved22(22), reserved23(23),
reserved24(24), reserved25(25), reserved26(26),
reserved27(27), reserved28(28),
control(29),
initiator(30),
target(31)
}
IsnsSrvrDiscoveryMethodsType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The types of iSNS Server discovery methods that are enabled
on an iSNS Server. The options are DHCP, Service Location
Protocol (SLP), multicast group iSNS heartbeat, broadcast
group iSNS heartbeat, configured server list, and other.
The iSNS Server may support additional discovery methods
not indicated."
REFERENCE "RFC 4171, Section 2.5"
SYNTAX BITS {
dhcp(0),
slp(1),
multicastGroupHb(2),
broadcastHb(3),
cfgdServerList(4),
other(5)
}
--
-- Internet Storage Name Service Management
--
isnsNotifications OBJECT IDENTIFIER ::=
{ isnsMIB 0 }
isnsObjects OBJECT IDENTIFIER ::=
{ isnsMIB 1 }
isnsConformance OBJECT IDENTIFIER ::=
{ isnsMIB 2 }
--
-- iSNS Server instance managed objects --------------------
--
isnsServerInfo OBJECT IDENTIFIER ::= { isnsObjects 1 }
isnsServerTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsServerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table provides a list of the iSNS Server instances
that are managed through the same SNMP context."
::= { isnsServerInfo 1 }
isnsServerEntry OBJECT-TYPE
SYNTAX IsnsServerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This is a row in the iSNS Server instance table. The number
of rows is dependent on the number of iSNS Server instances
that are being managed through the same SNMP context."
INDEX { isnsServerIndex }
::= { isnsServerTable 1 }
Okay bestie, the big table is here, and it's giving structure πβ¨ IsnsServerEntry is the row layout, with 17 columns (index, name, version, vendor info and so on), and each column gets its own OBJECT-TYPE with an OID hanging off isnsServerEntry. Here's the whole row definition first:
IsnsServerEntry ::=
SEQUENCE {
isnsServerIndex Unsigned32,
isnsServerName SnmpAdminString,
isnsServerIsnsVersion Unsigned32,
isnsServerVendorInfo SnmpAdminString,
isnsServerPhysicalIndex PhysicalIndex,
isnsServerTcpPort InetPortNumber,
isnsServerUdpPort InetPortNumber,
isnsServerDiscontinuityTime
TimeStamp,
isnsServerRole INTEGER,
isnsServerDiscoveryMethodsEnabled
IsnsSrvrDiscoveryMethodsType,
isnsServerDiscoveryMcGroupType
InetAddressType,
isnsServerDiscoveryMcGroupAddress
InetAddress,
isnsServerEsiNonResponseThreshold
Unsigned32,
isnsServerEnableControlNodeMgtScn
TruthValue,
isnsServerDefaultDdDdsStatus
INTEGER,
isnsServerUpdateDdDdsSupported
IsnsDdDdsModificationType,
isnsServerUpdateDdDdsEnabled
IsnsDdDdsModificationType
}
The first column is the key π isnsServerIndex is not-accessible and identifies each iSNS Server the SNMP context is managing. Other parts of the MIB use that index to point at a specific server, so it's basically the main character of the table π
isnsServerIndex OBJECT-TYPE
SYNTAX Unsigned32 ( 1 .. 4294967295 )
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This object uniquely identifies the iSNS Server being
managed by the SNMP context and is the key for this table.
This is an instance index for each iSNS Server being
managed. The value of this object is used elsewhere in
the MIB to reference specific iSNS Servers."
::= { isnsServerEntry 1 }
isnsServerName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A non-unique name that can be assigned to the iSNS Server
instance. If not configured, then the string SHALL be
zero-length."
::= { isnsServerEntry 2 }
isnsServerIsnsVersion OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSNS version value as contained in messages received
from the current primary server. The header of each iSNSP
message contains the iSNS version of the sender. If
unknown, the reported value is 0."
REFERENCE "RFC 4171"
DEFVAL { 1 }
::= { isnsServerEntry 3 }
isnsServerVendorInfo OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"If this server instance is utilizing the product of a
particular 'vendor', then this managed object contains
that vendor's name and version. Otherwise, the
string SHALL be zero-length. The format of the string
is as follows: Vendor Name, Vendor Version, Vendor
Defined Information.
Field Description
--------- ----------------
Vendor Name The name of the vendor (if one exists)
Vendor Version The version of the vendor product
Vendor Defined This follows the second comma in the
string, if one exists, and is vendor
defined
"
::= { isnsServerEntry 4 }
isnsServerPhysicalIndex OBJECT-TYPE
SYNTAX PhysicalIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An index identifying the network interface for this iSNS
Server within a network entity. This index maps to the
entPhysicalIndex of entPhysicalTable table in RFC 4133. The
entPhysicalClass value for the table row must be 'port', as
the interface must be able to send and receive data."
REFERENCE "RFC 4133, RFC 4171, Section 2.5 - 2.8"
::= { isnsServerEntry 5 }
isnsServerTcpPort OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the TCP port this iSNS instance is accepting
iSNSP messages on, generally the iSNS well-known port.
The well-known TCP port for iSNSP is 3205. If TCP is
not supported by this server instance, then the value
is 0."
::= { isnsServerEntry 6 }
isnsServerUdpPort OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the UDP port this iSNS instance is accepting
iSNSP messages on; generally, the iSNS well-known port.
The well-known UDP port for iSNSP is 3205. If UDP is
not supported by this server instance, then the value
is 0."
::= { isnsServerEntry 7 }
isnsServerDiscontinuityTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime on the most recent occasion that
this iSNS server became active or suffered a
discontinuity."
::= { isnsServerEntry 8 }
isnsServerRole OBJECT-TYPE
SYNTAX INTEGER { notSet(1),
server(2),
backupServer(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current operational mode of this iSNS Server instance.
Value Description
--------- ----------------
notSet The iSNS Server role is not
configured.
server The iSNS Server instance is
an operational iSNS Server.
backupServer The iSNS Server instance is
currently acting as a backup."
REFERENCE "RFC 4171, Section 2.7 - 2.8"
::= { isnsServerEntry 9 }
Now the discovery stuff π¦ isnsServerDiscoveryMethodsEnabled tells a client which discovery methods work for a given server, and the multicast group columns describe where iSNS Heartbeat messages go if multicast discovery is turned on π The spec is pretty particular about the multicast type and address pairing, so read those two DESCRIPTION blocks carefully, bestie π«Ά
isnsServerDiscoveryMethodsEnabled OBJECT-TYPE
SYNTAX IsnsSrvrDiscoveryMethodsType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the discovery methods currently enabled for
this iSNS Server instance. This allows a client to
determine what discovery methods can be used for
this iSNS Server. Additional methods of discovery may
also be supported."
::= { isnsServerEntry 10 }
isnsServerDiscoveryMcGroupType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Internet address in
isnsServerDiscoveryMcGroupAddress. If the address is
specified, then it must be a valid multicast address and the
value of this object must be ipv4(1), ipv6(2), ipv4z(3), or
ipv6z(4); otherwise, the value of this object is
unknown(0), and the value of
isnsServerDiscoveryMcGroupAddress is the zero-length string."
::= { isnsServerEntry 11 }
isnsServerDiscoveryMcGroupAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The multicast group that iSNS Heartbeat messages are
sent to if multicast-based discovery has been enabled
for this server instance. If not configured, then the
string SHALL be zero-length. The format of this
object is specified by isnsServerDiscoveryMcGroupType."
::= { isnsServerEntry 12 }
Next up is the ESI threshold, which is a real "how many strikes before you're out" situation π Miss enough Entity Status Inquiry messages in a row and the entity gets deregistered, unless the threshold is set to 0, in which case it never does. The admin toggles and defaults come next too π
isnsServerEsiNonResponseThreshold OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Entity Status Inquiry (ESI) Non-Response Threshold -
the number of ESI messages that will be sent without
receiving a response before an entity is deregistered
from the iSNS database. A value of 0 indicates
Entities will never be deregistered due to non-receipt
of ESI messages."
REFERENCE "RFC 4171, Section 2.4"
DEFVAL { 3 }
::= { isnsServerEntry 13 }
isnsServerEnableControlNodeMgtScn OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates if the iSNS Server administrative option to send
Management SCNs to Control Nodes is enabled. Management
SCNs are used by Control Nodes to monitor and control an
iSNS Server. If enabled, Control Nodes can register to
receive Management SCNs."
REFERENCE "RFC 4171, Section 2.2.3, 2.4"
DEFVAL { true }
::= { isnsServerEntry 14 }
isnsServerDefaultDdDdsStatus OBJECT-TYPE
SYNTAX INTEGER { inNoDomain(1),
inDefaultDdAndDds(2) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This indicates the Discovery Domain (DD) and Discovery
Domain Set (DDS) membership status for a new device
when registered in the iSNS Server instance. Either the
new device will not be in a DD/DDS, or will be placed
into a default DD and default DDS. The default setting
is inNoDomain."
REFERENCE "RFC 4171, Section 2.4"
DEFVAL { inNoDomain }
::= { isnsServerEntry 15 }
isnsServerUpdateDdDdsSupported OBJECT-TYPE
SYNTAX IsnsDdDdsModificationType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The methods that this iSNS Server instance supports
to modify Discovery Domains and Discovery Domain Sets."
REFERENCE "RFC 4171, Section 2.4"
::= { isnsServerEntry 16 }
isnsServerUpdateDdDdsEnabled OBJECT-TYPE
SYNTAX IsnsDdDdsModificationType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This indicates the methods this server instance currently
allows for modifying Discovery Domains and Discovery
Domain Sets."
REFERENCE "RFC 4171, Sec 2.2.2 and 2.4"
::= { isnsServerEntry 17 }
--
-- Count of objects currently registered in a server instance
--
The last bit is just a comment header, and it's the cliffhanger π The registration count objects are coming up next, so stay tuned, bestie πβ¨
okay so this bit is where the iSNS server keeps count of everything it's holding for each instance π’β¨ it's basically a little scoreboard, and then it gets into the control node tables π
isnsNumObjectsTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsNumObjectsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table providing the number of registered objects of each
type in the iSNS Server instance. The number of entries is
dependent upon the number of iSNS Server instances being
managed."
::= { isnsServerInfo 2 }
isnsNumObjectsEntry OBJECT-TYPE
SYNTAX IsnsNumObjectsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry of an iSNS Server instance."
AUGMENTS { isnsServerEntry }
::= { isnsNumObjectsTable 1 }
IsnsNumObjectsEntry ::= SEQUENCE {
isnsNumDds Gauge32,
isnsNumDd Gauge32,
isnsNumEntities Gauge32,
isnsNumPortals Gauge32,
isnsNumPortalGroups Gauge32,
isnsNumIscsiNodes Gauge32,
isnsNumFcPorts Gauge32,
isnsNumFcNodes Gauge32
}
isnsNumDds OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of Discovery Domain Sets
in this iSNS instance. This is the number of rows
in the isnsDdsTable."
::= { isnsNumObjectsEntry 1 }
isnsNumDd OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of Discovery Domains
in this iSNS instance. This is the number of rows in the
isnsDdTable."
::= { isnsNumObjectsEntry 2 }
isnsNumEntities OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of Entities registered in this
iSNS Server instance. This is the number of rows in
the isnsRegEntityTable for this instance."
::= { isnsNumObjectsEntry 3 }
isnsNumPortals OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of Portals registered in iSNS.
This is the number of rows in isnsRegPortalTable."
::= { isnsNumObjectsEntry 4 }
isnsNumPortalGroups OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of Portal Groups registered in
iSNS. This is the number of rows in isnsRegPgTable."
::= { isnsNumObjectsEntry 5 }
isnsNumIscsiNodes OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of iSCSI node entries registered
in the iSNS. This is the number rows in
isnsRegIscsiNodeTable."
::= { isnsNumObjectsEntry 6 }
isnsNumFcPorts OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of FC Port entries registered
in the iSNS. This is the number of rows in
isnsRegFcPortTable."
::= { isnsNumObjectsEntry 7 }
isnsNumFcNodes OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current total number of FC node entries registered
in the iSNS. This is the number of rows in
isnsRegFcNodeTable."
::= { isnsNumObjectsEntry 8 }
--
-- Control node information
--
isnsControlNodeInfo OBJECT IDENTIFIER ::=
{ isnsServerInfo 3 }
--
-- Specific iSCSI Nodes authorized to register as Control
-- Nodes
--
isnsControlNodeIscsiTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsControlNodeIscsiEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Specified iSCSI Nodes that can register or are registered
as control nodes. The number of rows is dependent on the
number of iSCSI Control Nodes."
::= { isnsControlNodeInfo 1 }
isnsControlNodeIscsiEntry OBJECT-TYPE
SYNTAX IsnsControlNodeIscsiEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This is an iSCSI Control Node entry for a specific iSNS
server instance."
INDEX { isnsServerIndex,
isnsControlNodeIscsiNodeIndex }
::= { isnsControlNodeIscsiTable 1 }
IsnsControlNodeIscsiEntry ::= SEQUENCE {
isnsControlNodeIscsiNodeIndex IsnsNodeIndexId,
isnsControlNodeIscsiNodeName SnmpAdminString,
isnsControlNodeIscsiIsRegistered TruthValue,
isnsControlNodeIscsiRcvMgtSCN TruthValue
}
isnsControlNodeIscsiNodeIndex OBJECT-TYPE
SYNTAX IsnsNodeIndexId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index for the iSCSI storage node authorized to act
as a control node."
::= { isnsControlNodeIscsiEntry 1 }
isnsControlNodeIscsiNodeName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSCSI Name of the initiator or target associated with
the storage node. The iSCSI Name cannot be longer than
223 bytes. The iSNS Server internal maximum size is 224
bytes to provide NULL termination. This is the iSCSI Node
Name for the storage node authorized and/or acting as a
control node."
::= { isnsControlNodeIscsiEntry 2 }
isnsControlNodeIscsiIsRegistered OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the control node is currently
registered in the iSNS Server instance."
::= { isnsControlNodeIscsiEntry 3 }
isnsControlNodeIscsiRcvMgtSCN OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the Control Node has registered to
receive Management SCNs. Management SCNs are sent to
a Control Node if they are enabled, as indicated by
isnsServerEnableControlNodeMgtScn, and the Control
Node has registered for them."
REFERENCE "RFC 4171, Section 2.2.3, 2.4"
::= { isnsControlNodeIscsiEntry 4 }
--
-- Specific FC Ports authorized to register as Control
-- Nodes
--
isnsControlNodeFcPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsControlNodeFcPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Specified FC Ports that can register or are registered as
control nodes. The number of rows is dependent on the
number of FC Port Control Nodes."
::= { isnsControlNodeInfo 2 }
isnsControlNodeFcPortEntry OBJECT-TYPE
SYNTAX IsnsControlNodeFcPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"FC Port control node entry."
INDEX { isnsServerIndex,
isnsControlNodeFcPortWwpn }
::= { isnsControlNodeFcPortTable 1 }
IsnsControlNodeFcPortEntry ::= SEQUENCE {
isnsControlNodeFcPortWwpn FcNameIdOrZero,
isnsControlNodeFcPortIsRegistered TruthValue,
isnsControlNodeFcPortRcvMgtSCN TruthValue
}
isnsControlNodeFcPortWwpn OBJECT-TYPE
SYNTAX FcNameIdOrZero (SIZE(8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The FC Port World Wide Port Name that can and/or is acting
as a Control Node for the specified iSNS Server. A zero-
length string is not valid for this managed object.
This managed object, combined with the isnsServerIndex, is
the key for this table."
::= { isnsControlNodeFcPortEntry 1 }
isnsControlNodeFcPortIsRegistered OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the control node is currently
registered in the iSNS Server instance."
::= { isnsControlNodeFcPortEntry 2 }
isnsControlNodeFcPortRcvMgtSCN OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the Control Node has registered to
receive Management SCNs. Management SCNs are sent to
a Control Node if they are enabled, as indicated by
isnsServerEnableControlNodeMgtScn, and the Control
Node has registered for them."
REFERENCE "RFC 4171, Section 2.2.3, 2.4"
::= { isnsControlNodeFcPortEntry 3 }
--
-- Discovery Domain Set information
--
isnsDdsInfo OBJECT IDENTIFIER ::= { isnsServerInfo 4 }
--
-- Discovery Domain Set Registrations -----------------
--
isnsDdsTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsDdsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing configuration information for each
Discovery Domain Set (DDS) registered in the iSNS Server
instance. The number of rows in the table is dependent
on the number of DDSs registered in the specified iSNS
server instance."
::= { isnsDdsInfo 1 }
isnsDdsEntry OBJECT-TYPE
SYNTAX IsnsDdsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one Discovery Domain Set (DDS) registered
in the iSNS Server instance."
INDEX { isnsServerIndex, isnsDdsId}
::= { isnsDdsTable 1 }
IsnsDdsEntry ::=
SEQUENCE {
isnsDdsId IsnsDiscoveryDomainSetId,
isnsDdsSymbolicName SnmpAdminString,
isnsDdsStatus IsnsDdsStatusType
}
Okay bestie, let's dig into the Discovery Domain Set tables π The DDS gets a symbolic name, a status, and a membership table that maps each DD to its DDS, and the DD side gets its own tables for iSCSI node members and explicit portal members π¦
isnsDdsId OBJECT-TYPE
SYNTAX IsnsDiscoveryDomainSetId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The ID that refers to this Discovery Domain Set and
index to the table."
::= { isnsDdsEntry 1 }
isnsDdsSymbolicName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Discovery Domain Set Symbolic Name field contains
a unique variable-length description (up to 255 bytes)
that is associated with the DDS. If a Symbolic Name is
not provided, then one will be generated by the iSNS
server."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdsEntry 2 }
isnsDdsStatus OBJECT-TYPE
SYNTAX IsnsDdsStatusType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The status of this Discovery Domain Set (DDS)."
REFERENCE "RFC 4171, Section 6.11.1.3"
::= { isnsDdsEntry 3 }
--
-- Discovery Domain Set Members --------------------
--
--
-- DDS Membership Assignment
--
isnsDdsMemberTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsDdsMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing Discovery Domains (DDs) that have
been assigned to specific Discovery Domain Sets (DDSs).
The number of rows in the table is dependent on the
number of DD to DDS relationships in the iSNS instance."
::= { isnsDdsInfo 2 }
isnsDdsMemberEntry OBJECT-TYPE
SYNTAX IsnsDdsMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The mapping of one Discovery Domain (DD) to a Discovery
Domain Set (DDS). This indicates the DD is a member of
the DDS."
INDEX { isnsServerIndex,
isnsDdsId,
isnsDdsMemberDdId }
::= { isnsDdsMemberTable 1 }
IsnsDdsMemberEntry ::=
SEQUENCE {
isnsDdsMemberDdId IsnsDiscoveryDomainId,
isnsDdsMemberSymbolicName SnmpAdminString
}
isnsDdsMemberDdId OBJECT-TYPE
SYNTAX IsnsDiscoveryDomainId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The ID that identifies the Discovery Domain
that is a member of the Discovery Domain Set."
::= { isnsDdsMemberEntry 1 }
isnsDdsMemberSymbolicName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Symbolic Name of the Discovery Domain that is a member
of this DDS. This value SHALL be identical to the object
isnsDdSymbolicName for the associated DD ID."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdsMemberEntry 2 }
--
-- Discovery Domain information
--
isnsDdInfo OBJECT IDENTIFIER ::= { isnsServerInfo 5 }
--
-- Discovery Domain Registrations ------------------------
--
isnsDdTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsDdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing configuration information for each
Discovery Domain (DD) registered in the iSNS. The number
of rows in the table is dependent on the number of DDs
registered in the iSNS instance."
::= { isnsDdInfo 1 }
isnsDdEntry OBJECT-TYPE
SYNTAX IsnsDdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on a Discovery Domain (DD) registered in
the iSNS Server instance."
INDEX { isnsServerIndex, isnsDdId}
::= { isnsDdTable 1 }
IsnsDdEntry::=
SEQUENCE {
isnsDdId IsnsDiscoveryDomainId,
isnsDdSymbolicName SnmpAdminString,
isnsDdFeatures IsnsDdFeatureType
}
isnsDdId OBJECT-TYPE
SYNTAX IsnsDiscoveryDomainId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The ID that refers to this Discovery Domain, and the
index to the table."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdEntry 1 }
isnsDdSymbolicName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Discovery Domain Symbolic Name field contains a
unique variable-length description (up to 255 bytes)
that is associated with the DD."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdEntry 2 }
isnsDdFeatures OBJECT-TYPE
SYNTAX IsnsDdFeatureType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This defines the features the Discovery Domain has."
REFERENCE "RFC 4171, Section 6.11.2.9"
::= { isnsDdEntry 3 }
--
-- Discovery Domain Members --------------------
--
--
-- DD iSCSI Node Membership Assignment
--
isnsDdIscsiMemberTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsDdIscsiMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing iSCSI node indexes that have been
assigned to specific DDs in this iSNS Server instance. The
number of rows in the table is dependent on the number of
relationships between iSCSI Nodes and DDs registered in the
iSNS instance."
::= { isnsDdInfo 2 }
isnsDdIscsiMemberEntry OBJECT-TYPE
SYNTAX IsnsDdIscsiMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The mapping of one iSCSI Node to a Discovery Domain to
indicate membership in the DD. The indexes are the iSNS
server instance, the DD ID of the Discovery Domain, and
the iSCSI Node Index of the iSCSI Node."
INDEX { isnsServerIndex,
isnsDdId,
isnsDdIscsiMemberIndex }
::= { isnsDdIscsiMemberTable 1 }
IsnsDdIscsiMemberEntry::=
SEQUENCE {
isnsDdIscsiMemberIndex IsnsNodeIndexId,
isnsDdIscsiMemberName SnmpAdminString,
isnsDdIscsiMemberIsRegistered TruthValue
}
isnsDdIscsiMemberIndex OBJECT-TYPE
SYNTAX IsnsNodeIndexId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index for this member iSCSI node entry."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdIscsiMemberEntry 1 }
isnsDdIscsiMemberName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE (0..223))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSCSI Name associated with the storage node. The
iSCSI Name cannot be longer than 223 bytes. The iSNS
server internal maximum size is 224 bytes to provide
NULL termination. This is the iSCSI Name for the storage
node that is a member of the DD. This value maps 1 to 1
to the isnsDdIscsiMemberIndex node index. The iSCSI Name
field is too long to be easily used for an index directly.
The node index used for a specific node name is only
persistent across iSNS Server reinitializations for nodes
that are in a Discovery Domain (DD) or are registered
control nodes. This value is only required during row
creation if the storage node is not yet registered in the
iSNS Server instance. If the storage node is not yet
registered, then the iSCSI Name MUST be provided with the
iSCSI node index during row creation in order to create the
1-to-1 mapping."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdIscsiMemberEntry 2 }
isnsDdIscsiMemberIsRegistered OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This indicates whether this member of the DD is currently
registered in the iSNS Server instance. iSCSI Storage
Node members do not need to be currently registered in
order for their iSCSI Name and Index to be added to
a DD."
REFERENCE "RFC 4171, Section 6.11"
::= { isnsDdIscsiMemberEntry 3 }
--
-- DD Portal Membership Assignment
--
isnsDdPortalMemberTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsDdPortalMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing currently registered and unregistered
portal objects that have been explicitly assigned to
specific DDs. Explicit assignment of a portal to a DD
is only done when a specific set of portals are preferred
for use within a DD. Otherwise, for iSCSI, the Portal
Group Object should be used for identifying which portals
provide access to which storage nodes. The number of rows
in the table is dependent on the number of explicit
relationships between portals and DDs registered in the
iSNS."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdInfo 3 }
isnsDdPortalMemberEntry OBJECT-TYPE
SYNTAX IsnsDdPortalMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Each entry indicates an explicit addition of a portal to a
discovery domain. The explicit addition of an entity portal
to a discovery domain indicates the portal is preferred for
access to nodes of the entity for this discovery domain.
Registered Portal Group objects are used in iSCSI to
indicate mapping of portals to nodes across all discovery
domains. Portals that have been explicitly mapped to a
discovery domain will be returned as part of a query that
is scoped to that discovery domain. If no portal of an
entity has been explicitly mapped to a discovery domain,
then all portals of the entity that provide access to a
storage node are returned as part of a query. The table
indexes are the server instance, the DD ID of the Discovery
Domain, and the Portal Index of the portal."
INDEX { isnsServerIndex,
isnsDdId,
isnsDdPortalMemberIndex }
::= { isnsDdPortalMemberTable 1 }
Okay bestie, the DD portal members are up next π¦ Each portal gets its own row, and the index here is keyed off isnsServerIndex and isnsDdId π
IsnsDdPortalMemberEntry ::=
SEQUENCE {
isnsDdPortalMemberIndex IsnsPortalIndexId,
isnsDdPortalMemberAddressType InetAddressType,
isnsDdPortalMemberAddress InetAddress,
isnsDdPortalMemberPortType IsnsPortalPortTypeId,
isnsDdPortalMemberPort InetPortNumber,
isnsDdPortalMemberIsRegistered TruthValue
}
isnsDdPortalMemberIndex OBJECT-TYPE
SYNTAX IsnsPortalIndexId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index for a portal explicitly contained in the discovery
domain. This managed object, combined with isnsServerIndex
and isnsDdId, is the key for this table."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdPortalMemberEntry 1 }
isnsDdPortalMemberAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Inet address in isnsDdPortalMemberAddress. If
the address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value
of this object is unknown(0), and the value of
isnsDdPortalMemberAddress is the zero-length string."
::= { isnsDdPortalMemberEntry 2 }
isnsDdPortalMemberAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Inet Address for the portal. The format of this
object is specified by isnsDdPortalMemberAddressType."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdPortalMemberEntry 3 }
isnsDdPortalMemberPortType OBJECT-TYPE
SYNTAX IsnsPortalPortTypeId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port type for the portal, either UDP or TCP."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdPortalMemberEntry 4 }
isnsDdPortalMemberPort OBJECT-TYPE
SYNTAX InetPortNumber ( 1 .. 65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port number for the portal. Whether the portal
type is TCP or UDP is indicated by
isnsDdPortalMemberPortType."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdPortalMemberEntry 5 }
isnsDdPortalMemberIsRegistered OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This indicates whether this member of the DD is currently
registered in the iSNS Server instance. Portals that are
DD members do not need to be currently registered in
order for them to be added to a DD."
REFERENCE "RFC 4171, Section 6.11"
::= { isnsDdPortalMemberEntry 6 }
Next up is the DD FC Port membership table, which is where FC Port WWNs get assigned to DDs πΈβ¨
--
-- DD FC Port Membership Assignment
--
isnsDdFcPortMemberTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsDdFcPortMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing FC Port World Wide Names (WWN) that
have been assigned to specific DDs. The number of rows
in the table is dependent on the number of relationships
between FC Ports and DDs registered in the iSNS."
::= { isnsDdInfo 4 }
isnsDdFcPortMemberEntry OBJECT-TYPE
SYNTAX IsnsDdFcPortMemberEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The association of one FC Port with a Discovery Domain.
Membership of an FC Port in a Discovery Domain is
indicated by creating a row for the appropriate DD ID
and FC Port WWN."
INDEX { isnsServerIndex,
isnsDdId,
isnsDdFcPortMemberPortName }
::= { isnsDdFcPortMemberTable 1 }
IsnsDdFcPortMemberEntry ::=
SEQUENCE {
isnsDdFcPortMemberPortName FcNameIdOrZero,
isnsDdFcPortMemberIsRegistered TruthValue
}
isnsDdFcPortMemberPortName OBJECT-TYPE
SYNTAX FcNameIdOrZero (SIZE(8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Port WWN of the FC Port that is a member of the DD. The
value MUST be a valid FC WWN, as per the FC-GS (Fibre Channel -
Generic Services) standard. This managed object, combined
with the isnsServerIndex and isnsDdId are the key for this
table. A zero-length string is not a valid value for this
managed object."
REFERENCE "RFC 4171, Section 6"
::= { isnsDdFcPortMemberEntry 1 }
isnsDdFcPortMemberIsRegistered OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This indicates whether this member of the DD is currently
registered in the iSNS Server instance."
REFERENCE "RFC 4171, Section 6.11"
::= { isnsDdFcPortMemberEntry 2 }
And now the Registered Device Information bit π§ We're starting the registered Entities table here, and every Entity in it got registered over the iSNS protocol π
--
-- Registered Device Information
--
isnsReg OBJECT IDENTIFIER ::= { isnsServerInfo 6 }
isnsRegEntityInfo OBJECT IDENTIFIER
::= { isnsReg 1 }
--
-- iSNS Registered Entities Table
--
isnsRegEntityTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsRegEntityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing registered Entity objects in each iSNS
server instance. The number of entries in the table is
dependent on the number of Entity objects registered in the
iSNS Server instances. All Entity objects are registered in
the iSNS using the iSNS protocol."
::= { isnsRegEntityInfo 1 }
isnsRegEntityEntry OBJECT-TYPE
SYNTAX IsnsRegEntityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one registered Entity object in an iSNS
server instance."
INDEX { isnsServerIndex,
isnsRegEntityIndex }
::= { isnsRegEntityTable 1 }
IsnsRegEntityEntry ::=
SEQUENCE {
isnsRegEntityIndex IsnsEntityIndexIdOrZero,
isnsRegEntityEID SnmpAdminString,
isnsRegEntityProtocol Unsigned32,
isnsRegEntityManagementAddressType
InetAddressType,
isnsRegEntityManagementAddress
InetAddress,
isnsRegEntityTimestamp TimeStamp,
isnsRegEntityVersionMin Unsigned32,
isnsRegEntityVersionMax Unsigned32,
isnsRegEntityRegistrationPeriod
Unsigned32
}
isnsRegEntityIndex OBJECT-TYPE
SYNTAX IsnsEntityIndexIdOrZero
( 1 .. 4294967295 )
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Entity Index for this entity. This index is assigned
by the iSNS Server when an Entity is initially registered.
The Entity Index can be used to represent a registered
Entity object in situations where the Entity EID would
be too long/unwieldy. Zero is not a valid value for this
object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegEntityEntry 1 }
isnsRegEntityEID OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The EID is a unique registered Entity object identifier, as
specified in the iSNS Specification. This is the iSNS
Entity Identifier for the registered Entity object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegEntityEntry 2 }
isnsRegEntityProtocol OBJECT-TYPE
SYNTAX Unsigned32 ( 1 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The block storage protocol supported by this entity, as
defined in the iSNS Specification, Section 6.2.2. The
following values are initially assigned.
Type Value Entity Type
---------- -----------
1 No Protocol
2 iSCSI
3 iFCP
All Others As assigned by IANA
The full set of current Block Storage Protocols are
specified in the IANA-maintained registry of assigned
iSNS parameters. Please refer to RFC 4171 and the iSNS
parameters maintained at IANA."
REFERENCE "RFC 4171, Section 6.2.2, and IANA Assignments"
::= { isnsRegEntityEntry 3 }
isnsRegEntityManagementAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Inet address in isnsRegEntityManagementAddress.
If the address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value of
this object is unknown(0), and the value of
isnsRegEntityManagementAddress is the zero-length string."
::= { isnsRegEntityEntry 4 }
isnsRegEntityManagementAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSNS Management IP Address for the registered Entity
object. The format of this object is specified by
isnsRegEntityManagementAddressType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegEntityEntry 5 }
isnsRegEntityTimestamp OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSNS Entity Registration Timestamp for the registered
Entity object. This is the most recent date and time that
the registered Entity object, and associated registered
objects contained in the Entity, were registered or
updated."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegEntityEntry 6 }
okay so we're picking up right where the entity stuff left off, and the version numbers are next π these are the minimum and maximum versions for the block storage protocol, and the 255 wildcard is giving "no limit set" energy π¦
isnsRegEntityVersionMin OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 254 | 255 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The minimum version supported for the block storage protocol
specified by isnsRegEntityProtocol. The protocol version
specified can be from 1 to 254. A value of 255 is a wildcard
value, indicating no minimum version value has been specified
for this Entity. Entity registrations with an
isnsRegEntityProtocol of 'No Protocol' SHALL have an
isnsRegEntityVersionMin value of 0."
REFERENCE "RFC 4171, Section 6.2.5"
::= { isnsRegEntityEntry 7 }
isnsRegEntityVersionMax OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 254 | 255 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum version supported for the block storage protocol
specified by isnsRegEntityProtocol. The protocol version
specified can be from 1 to 254. A value of 255 is a wildcard
value, indicating no maximum version value has been specified
for this Entity. Entity registrations with an
isnsRegEntityProtocol of 'No Protocol' SHALL have an
isnsRegEntityVersionMax value of 0."
REFERENCE "RFC 4171, Section 6.2.5"
::= { isnsRegEntityEntry 8 }
isnsRegEntityRegistrationPeriod OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 4294967295 )
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSNS Entity Status Inquiry (ESI) registration period,
which indicates the maximum time, in seconds, that the
registration will be maintained without receipt of an iSNSP
message from the entity. If the Registration Period is set
to 0, then the Entity SHALL NOT be deregistered due to no
contact with the entity."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegEntityEntry 9 }
--
-- Registered Objects Associated With an Entity Information
--
isnsRegEntityNumObjectsTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsRegEntityNumObjectsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing information on the number of registered
objects associated with a registered Entity in the iSNS server
instance. The number of entries in the table is dependent on
the number of registered Entity objects in the iSNS."
::= { isnsRegEntityInfo 2 }
isnsRegEntityNumObjectsEntry OBJECT-TYPE
SYNTAX IsnsRegEntityNumObjectsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on the number of registered objects associated
with a registered Entity object in an iSNS Server instance."
INDEX { isnsServerIndex,
isnsRegEntityIndex }
::= { isnsRegEntityNumObjectsTable 1 }
IsnsRegEntityNumObjectsEntry ::=
SEQUENCE {
isnsRegEntityInfoNumPortals Gauge32,
isnsRegEntityInfoNumPortalGroups Gauge32,
isnsRegEntityInfoNumIscsiNodes Gauge32,
isnsRegEntityInfoNumFcPorts Gauge32,
isnsRegEntityInfoNumFcNodes Gauge32
}
isnsRegEntityInfoNumPortals OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Portals associated with this Entity."
::= { isnsRegEntityNumObjectsEntry 1 }
isnsRegEntityInfoNumPortalGroups OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Portal Groups associated with this Entity."
::= { isnsRegEntityNumObjectsEntry 2 }
isnsRegEntityInfoNumIscsiNodes OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of iSCSI Storage Nodes associated with this
Entity."
::= { isnsRegEntityNumObjectsEntry 3 }
isnsRegEntityInfoNumFcPorts OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of FC Ports associated with this Entity."
::= { isnsRegEntityNumObjectsEntry 4 }
isnsRegEntityInfoNumFcNodes OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of FC Nodes associated with this Entity."
::= { isnsRegEntityNumObjectsEntry 5 }
next up is the portal stuff π§ the portal info branch hangs off isnsReg, and then there's a whole table of registered Portals, each one indexed by server, entity, and portal β¨
--
-- iSNS Registered Portal Information
--
isnsRegPortalInfo OBJECT IDENTIFIER
::= { isnsReg 2 }
--
-- iSNS Registered Portal Table
--
isnsRegPortalTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsRegPortalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing the registered Portals in the iSNS.
The number of entries is dependent on the number of
Portals registered in the iSNS."
::= { isnsRegPortalInfo 1 }
isnsRegPortalEntry OBJECT-TYPE
SYNTAX IsnsRegPortalEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one registered Entity Portal in the iSNS.
The Entity Index is part of the table index to quickly
find Portals that support a specific Entity."
INDEX { isnsServerIndex,
isnsRegEntityIndex,
isnsRegPortalPortalIndex }
::= { isnsRegPortalTable 1 }
IsnsRegPortalEntry ::=
SEQUENCE {
isnsRegPortalPortalIndex IsnsPortalIndexId,
isnsRegPortalAddressType InetAddressType,
isnsRegPortalAddress InetAddress,
isnsRegPortalPortType IsnsPortalPortTypeId,
isnsRegPortalPort InetPortNumber,
isnsRegPortalSymbolicName SnmpAdminString,
isnsRegPortalEsiInterval Unsigned32,
isnsRegPortalEsiPortType IsnsPortalPortTypeId,
isnsRegPortalEsiPort InetPortNumber,
isnsRegPortalScnPortType IsnsPortalPortTypeId,
isnsRegPortalScnPort InetPortNumber,
isnsRegPortalSecurityInfo IsnsPortalSecurityType
}
isnsRegPortalPortalIndex OBJECT-TYPE
SYNTAX IsnsPortalIndexId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index for this Entity Portal."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 1 }
isnsRegPortalAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Inet address in isnsRegPortalAddress. If the
address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value
of this object is unknown(0), and the value of
isnsRegPortalAddress is the zero-length string."
::= { isnsRegPortalEntry 2 }
isnsRegPortalAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Inet Address for this Portal as defined in the iSNS
Specification, RFC 4171. The format of this object is
specified by isnsRegPortalAddressType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 3 }
isnsRegPortalPortType OBJECT-TYPE
SYNTAX IsnsPortalPortTypeId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port type for this Portal, either UDP or TCP, as
defined in the iSNS Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 4 }
isnsRegPortalPort OBJECT-TYPE
SYNTAX InetPortNumber ( 1 .. 65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port number for this Portal as defined in the
iSNS Specification, RFC 4171. Whether the Portal type
is TCP or UDP is indicated by isnsRegPortalPortType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 5 }
isnsRegPortalSymbolicName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Symbolic Name for this Portal as defined in the iSNS
Specification, RFC 4171. If not provided, then the string
SHALL be zero-length."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 6 }
isnsRegPortalEsiInterval OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 65535 )
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Entity Status Inquiry (ESI) Interval for this Portal
as defined in the iSNS Specification, RFC 4171. A value of
0 indicates that ESI monitoring has not been configured for
this Portal."
REFERENCE "RFC 4171, Section 6.3.4"
::= { isnsRegPortalEntry 7 }
isnsRegPortalEsiPortType OBJECT-TYPE
SYNTAX IsnsPortalPortTypeId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port type for the ESI Port, either UDP or TCP, as
defined in the iSNS Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 8 }
isnsRegPortalEsiPort OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The TCP or UDP port number used for ESI monitoring. Whether
the port type is TCP or UDP is indicated by
isnsRegPortalEsiPortType. A value of 0 indicates that ESI
monitoring is not enabled for this Portal."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 9 }
isnsRegPortalScnPortType OBJECT-TYPE
SYNTAX IsnsPortalPortTypeId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port type for the SCN Port, either UDP or TCP, as
defined in the iSNS Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 10 }
that's the whole chunk for this part, bestie π«Ά πΈ
Okay bestie, the Portal's SCN port and security settings are next, and they're giving a lot of detail π β¨
isnsRegPortalScnPort OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The TCP or UDP port used to receive SCN messages from the
iSNS Server. Whether the port type is TCP or UDP is
indicated by isnsRegPortalScnPortType. A value of 0
indicates that SCN message receipt is not enabled for this
Portal."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPortalEntry 11 }
isnsRegPortalSecurityInfo OBJECT-TYPE
SYNTAX IsnsPortalSecurityType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates security attribute settings for the Portal as
registered in the iSNS server. The bit for bitmapVALID must
be set in order for this attribute to contain valid
information. Setting a bit to 1 indicates the
feature is enabled."
REFERENCE "RFC 4171, Section 6.3.9"
::= { isnsRegPortalEntry 12 }
Next up are the Portal Groups π«Ά They get their own branch of the tree, and each PG is registered at the same time as a Portal or Storage Node, so they're basically the group chat of Portals π
--
-- iSNS Registered Portal Group Information
--
isnsRegPortalGroupInfo OBJECT IDENTIFIER
::= { isnsReg 3 }
--
-- iSNS Registered Portal Group (PG) Table
--
isnsRegPgTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsRegPgEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing the registered Portal Groups (PGs) in
the iSNS Server instance. The number of entries is
dependent on the number of Portal Groups registered in
the iSNS."
::= { isnsRegPortalGroupInfo 1 }
isnsRegPgEntry OBJECT-TYPE
SYNTAX IsnsRegPgEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one registered Portal Group in the iSNS
server instance. The Entity Index is part of the table
index to quickly find Portal Groups that support Portals
and iSCSI Storage Nodes in a specific Entity."
INDEX { isnsServerIndex,
isnsRegEntityIndex,
isnsRegPgIndex }
::= { isnsRegPgTable 1 }
IsnsRegPgEntry ::=
SEQUENCE {
isnsRegPgIndex IsnsPortalGroupIndexId,
isnsRegPgIscsiNodeIndex IsnsNodeIndexId,
isnsRegPgIscsiName SnmpAdminString,
isnsRegPgPortalPortalIndex IsnsPortalIndexId,
isnsRegPgPortalAddressType InetAddressType,
isnsRegPgPortalAddress InetAddress,
isnsRegPgPortalPortType IsnsPortalPortTypeId,
isnsRegPgPortalPort InetPortNumber,
isnsRegPgPGT IsnsPortalGroupTagIdOrNull
}
isnsRegPgIndex OBJECT-TYPE
SYNTAX IsnsPortalGroupIndexId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The PG Index for this node. The index is created by the
iSNS Server instance for uniquely identifying registered
objects. The PG object is registered at the same time a
Portal or Storage Node is registered using the iSNS
protocol."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPgEntry 1 }
isnsRegPgIscsiNodeIndex OBJECT-TYPE
SYNTAX IsnsNodeIndexId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The index for the iSCSI Node associated with this PG.
This index can be used to reference the
isnsRegIscsiNodeTable."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPgEntry 2 }
isnsRegPgIscsiName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE (0..223))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSCSI Name of the initiator or target associated with
the storage node. The iSCSI Name cannot be longer than
223 bytes. The iSNS Server internal maximum size is 224
bytes to provide NULL termination. This is the PG iSCSI
Name that uniquely identifies the iSCSI Storage Node that
is associated with this PG."
::= { isnsRegPgEntry 3 }
isnsRegPgPortalPortalIndex OBJECT-TYPE
SYNTAX IsnsPortalIndexId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Portal Index for the Portal associated with this PG.
This index can be used to reference the isnsRegPortalTable."
::= { isnsRegPgEntry 4 }
isnsRegPgPortalAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Inet address in isnsRegPgPortalAddress. If
the address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value
of this object is unknown(0), and the value of
isnsRegPgPortalAddress is the zero-length string."
::= { isnsRegPgEntry 5 }
isnsRegPgPortalAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Inet Address for the Portal that is associated with
the PG. The format of this object is specified by
isnsRegPgPortalAddressType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPgEntry 6 }
isnsRegPgPortalPortType OBJECT-TYPE
SYNTAX IsnsPortalPortTypeId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port type, either UDP or TCP, for the Portal that
is associated with this registered PG object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPgEntry 7 }
isnsRegPgPortalPort OBJECT-TYPE
SYNTAX InetPortNumber ( 1 .. 65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port number for the Portal that is associated with
this registered PG object. Whether the Portal type is
TCP or UDP is indicated by isnsRegPgPortalPortType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegPgEntry 8 }
isnsRegPgPGT OBJECT-TYPE
SYNTAX IsnsPortalGroupTagIdOrNull
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Portal Group Tag (PGT) for the registered iSCSI Portal
Group object in an iSNS Server instance. This indicates
the tag value that the Portal uses for access to the iSCSI
Storage Node. The PGT is used for coordinated access
between multiple Portals, as described in the iSCSI
Specification, RFC 3720. A PGT with no association is a
NULL value. The value of -1 indicates a NULL value."
REFERENCE "RFC 4171, Section 6, and RFC 3720"
::= { isnsRegPgEntry 9 }
Last stop for this part: the iSCSI Nodes π¦ Storage devices register themselves through the iSNS protocol, and this table is where you can see them all lined up π
--
-- iSNS Registered iSCSI Node Information
--
isnsRegIscsiNodeInfo OBJECT IDENTIFIER ::= { isnsReg 4 }
--
-- iSNS Registered iSCSI Node Table
--
isnsRegIscsiNodeTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsRegIscsiNodeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing the registered iSCSI Nodes in the iSNS
server instance. Storage devices register using the iSNS
protocol. While a device cannot be registered in an iSNS
server using SNMP, an entry can be deleted in order to
remove 'stale' entries. The number of entries is related
to the number of iSCSI nodes registered in the iSNS."
::= { isnsRegIscsiNodeInfo 1 }
isnsRegIscsiNodeEntry OBJECT-TYPE
SYNTAX IsnsRegIscsiNodeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one iSCSI node that has been registered in
the iSNS Server instance. New rows cannot be added using
SNMP."
INDEX { isnsServerIndex,
isnsRegEntityIndex,
isnsRegIscsiNodeIndex }
::= { isnsRegIscsiNodeTable 1 }
IsnsRegIscsiNodeEntry ::= SEQUENCE {
isnsRegIscsiNodeIndex IsnsNodeIndexId,
isnsRegIscsiNodeName SnmpAdminString,
isnsRegIscsiNodeType IsnsIscsiNodeType,
isnsRegIscsiNodeAlias SnmpAdminString,
isnsRegIscsiNodeScnTypes IsnsIscsiScnType,
isnsRegIscsiNodeWwnToken FcNameIdOrZero,
isnsRegIscsiNodeAuthMethod SnmpAdminString
}
isnsRegIscsiNodeIndex OBJECT-TYPE
SYNTAX IsnsNodeIndexId
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index for this iSCSI node."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegIscsiNodeEntry 1 }
isnsRegIscsiNodeName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE (0..223))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSCSI Name of the initiator or target associated with
the storage node. The iSCSI Name cannot be longer than
223 bytes. The iSNS Server internal maximum size is 224
bytes to provide NULL termination. This is the iSCSI Name
that uniquely identifies the initiator, initiator/target,
target, or control node in the network."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegIscsiNodeEntry 2 }
isnsRegIscsiNodeType OBJECT-TYPE
SYNTAX IsnsIscsiNodeType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Node Type defining the functions of this iSCSI node."
::= { isnsRegIscsiNodeEntry 3 }
isnsRegIscsiNodeAlias OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Alias name of the iSCSI node. This is a variable-length
text-based description of up to 255 bytes."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegIscsiNodeEntry 4 }
isnsRegIscsiNodeScnTypes OBJECT-TYPE
SYNTAX IsnsIscsiScnType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The State Change Notification (SCN) types enabled for this
iSCSI node."
REFERENCE "RFC 4171, Section 6.4.4"
::= { isnsRegIscsiNodeEntry 5 }
Okay bestie, picking up right where the iSCSI Node entry is getting its ID card πͺͺβ¨
isnsRegIscsiNodeWwnToken OBJECT-TYPE
SYNTAX FcNameIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This contains a globally unique 64-bit integer value that
can be used to represent the World Wide Node Name of the
iSCSI device in a Fibre Channel fabric. This identifier is
used during the device registration process, and MUST
conform to the requirements in RFC 4171. A zero-length string
for this managed object indicates that a Node WWN token has
not been assigned."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegIscsiNodeEntry 6 }
isnsRegIscsiNodeAuthMethod OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This attribute contains a null-terminated string containing
UTF-8 text listing the iSCSI authentication methods enabled
for this iSCSI Node, in order of preference. The text
values used to identify iSCSI authentication methods are
embedded in this string attribute and delineated by a
comma. The text values are identical to those found in
RFC 3720 - iSCSI. Additional vendor-specific text values
are also possible."
REFERENCE "RFC 4171, Section 6, and RFC 3720"
::= { isnsRegIscsiNodeEntry 7 }
--
-- iSNS Registered FC Node Information
--
isnsRegFcNodeInfo OBJECT IDENTIFIER ::= { isnsReg 5 }
--
-- iSNS Registered FC Node Table
--
isnsRegFcNodeTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsRegFcNodeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing the registered FC Nodes in the iSNS.
This supports iFCP as defined in RFC 4172."
::= { isnsRegFcNodeInfo 1 }
isnsRegFcNodeEntry OBJECT-TYPE
SYNTAX IsnsRegFcNodeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one registered FC node that has been
registered in the iSNS."
INDEX { isnsServerIndex,
isnsRegFcNodeWwnn }
::= { isnsRegFcNodeTable 1 }
IsnsRegFcNodeEntry ::= SEQUENCE {
isnsRegFcNodeWwnn FcNameIdOrZero,
isnsRegFcNodeSymbolicName SnmpAdminString,
isnsRegFcNodeAddressType InetAddressType,
isnsRegFcNodeAddress InetAddress,
isnsRegFcNodeIPA OCTET STRING,
isnsRegFcNodeProxyIscsiName SnmpAdminString,
isnsRegFcNodeNumFcPorts Gauge32
}
isnsRegFcNodeWwnn OBJECT-TYPE
SYNTAX FcNameIdOrZero (SIZE(8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The FC Node World Wide Node Name as defined in the iSNS
Specification, RFC 4171. A zero-length string is not valid
for this managed object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcNodeEntry 1 }
isnsRegFcNodeSymbolicName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Node Symbolic Name of the node as defined in the
iSNS Specification, RFC 4171. This is a variable-length
text-based description. If not provided, then the string
SHALL be zero-length."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcNodeEntry 2 }
isnsRegFcNodeAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Inet address in isnsRegFcNodeAddress. If
the address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value
of this object is unknown(0), and the value of
isnsRegFcNodeAddress is the zero-length string."
::= { isnsRegFcNodeEntry 3 }
isnsRegFcNodeAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Node Inet address of the node as defined in the
iSNS Specification, RFC 4171. The format of this object is
specified by isnsRegFcNodeAddressType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcNodeEntry 4 }
isnsRegFcNodeIPA OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This managed object identifies the FC Initial Process
Associator of the node as defined in the iSNS
Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcNodeEntry 5 }
isnsRegFcNodeProxyIscsiName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE (0..223))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iSCSI Name used to represent the FC Node in the IP
network. It is used as a pointer to the matching iSCSI Name
entry in the iSNS Server. Its value is usually registered
by an FC-iSCSI gateway connecting the IP network to the
fabric containing the FC device."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcNodeEntry 6 }
isnsRegFcNodeNumFcPorts OBJECT-TYPE
SYNTAX Gauge32 ( 0 .. 4294967295 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of FC Ports associated with this FC Node."
::= { isnsRegFcNodeEntry 7 }
Now the FC Port table, where things get extra detailed π¦π Those little Port Type values are a whole vibe, so don't skip the hex π
--
-- iSNS Registered FC Port Table
--
isnsRegFcPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF IsnsRegFcPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on registered FC N_Ports in the iSNS. FC Ports
are associated with registered FC Nodes. This supports
iFCP as defined in RFC 4172."
REFERENCE "RFC 4172, Section 4"
::= { isnsRegFcNodeInfo 2 }
isnsRegFcPortEntry OBJECT-TYPE
SYNTAX IsnsRegFcPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one FC Port that has been registered in
iSNS."
REFERENCE "RFC 4172, Section 4"
INDEX { isnsServerIndex,
isnsRegEntityIndex,
isnsRegFcPortWwpn }
::= { isnsRegFcPortTable 1 }
IsnsRegFcPortEntry ::= SEQUENCE {
isnsRegFcPortWwpn FcNameIdOrZero,
isnsRegFcPortID FcAddressIdOrZero,
isnsRegFcPortType Unsigned32,
isnsRegFcPortSymbolicName SnmpAdminString,
isnsRegFcPortFabricPortWwn FcNameIdOrZero,
isnsRegFcPortHA FcAddressIdOrZero,
isnsRegFcPortAddressType InetAddressType,
isnsRegFcPortAddress InetAddress,
isnsRegFcPortFcCos IsnsFcClassOfServiceType,
isnsRegFcPortFc4Types OCTET STRING,
isnsRegFcPortFc4Descr SnmpAdminString,
isnsRegFcPortFc4Features OCTET STRING,
isnsRegFcPortScnTypes IsnsIfcpScnType,
isnsRegFcPortRole IsnsFcPortRoleType,
isnsRegFcPortFcNodeWwnn FcNameIdOrZero,
isnsRegFcPortPpnWwn FcNameIdOrZero
}
isnsRegFcPortWwpn OBJECT-TYPE
SYNTAX FcNameIdOrZero (SIZE(8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The FC Port's World Wide Port Name as defined in the iSNS
Specification, RFC 4171. A zero-length string is not valid
for this managed object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 1 }
isnsRegFcPortID OBJECT-TYPE
SYNTAX FcAddressIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port's Port ID as defined in the iSNS Specification,
RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 2 }
isnsRegFcPortType OBJECT-TYPE
SYNTAX Unsigned32 ( 0 .. 65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port Type as defined in the iSNS Specification,
RFC 4171, and the Fibre Channel Generic Services
Specification. Current values are as shown below:
unknown (0),
nPort (1),
nlPort (2),
fNlPort (3),
fPort (129), -- x'81'
flPort (130), -- x'82'
ePort (132), -- x'84'
bPort (133), -- x'85'
mFcpPort (65297), -- x'FF11'
iFcpPort (65298), -- x'FF12'
unknownEnd (65535)
The future assignment of any additional values will be
documented in a revision of RFC 4171."
REFERENCE "RFC 4171, Section 6.6.3"
::= { isnsRegFcPortEntry 3 }
isnsRegFcPortSymbolicName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port Symbolic Name as defined in the iSNS
Specification, RFC 4171. If not provided, then the
string SHALL be zero-length."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 4 }
isnsRegFcPortFabricPortWwn OBJECT-TYPE
SYNTAX FcNameIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Fabric Port WWN for this entry as defined in the iSNS
Specification, RFC 4171. A zero-length string for this
managed object indicates that the Fabric Port WWN is not
known, or has not yet been registered with the iSNS Server."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 5 }
isnsRegFcPortHA OBJECT-TYPE
SYNTAX FcAddressIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port Hard Address as defined in the iSNS
Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 6 }
isnsRegFcPortAddressType OBJECT-TYPE
That's the end of this chunk, so we'll pick up the FC Port Address stuff next ππ§
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of Inet address in isnsRegFcPortAddress. If
the address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value
of this object is unknown(0), and the value of
isnsRegFcPortAddress is the zero-length string."
::= { isnsRegFcPortEntry 7 }
isnsRegFcPortAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port Inet Address as defined in the iSNS
Specification, RFC 4171. The format of this object is
specified by isnsRegFcPortAddressType."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 8 }
isnsRegFcPortFcCos OBJECT-TYPE
SYNTAX IsnsFcClassOfServiceType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port Class of Service as defined in the iSNS
Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 9 }
isnsRegFcPortFc4Types OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port FC-4 Types as defined in the iSNS
Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6.6.9"
::= { isnsRegFcPortEntry 10 }
isnsRegFcPortFc4Descr OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(4..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port FC-4 Descriptor as defined in the iSNS
Specification, RFC 4171. The FC-4 Descriptor cannot be
longer than 255 bytes. The iSNS Server internal maximum
size is 256 bytes to provide NULL termination."
REFERENCE "RFC 4171, Section 6.6.10"
::= { isnsRegFcPortEntry 11 }
isnsRegFcPortFc4Features OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (128))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port FC-4 Features as defined in the iSNS
Specification, RFC 4171."
REFERENCE "RFC 4171, Section 6.6.11"
::= { isnsRegFcPortEntry 12 }
isnsRegFcPortScnTypes OBJECT-TYPE
SYNTAX IsnsIfcpScnType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The iFCP State Change Notification (SCN) types enabled for
the registered object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 13 }
isnsRegFcPortRole OBJECT-TYPE
SYNTAX IsnsFcPortRoleType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Port Role defines the role of the registered
object."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 14 }
isnsRegFcPortFcNodeWwnn OBJECT-TYPE
SYNTAX FcNameIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The FC Node World Wide Node Name that is associated with
this FC Port as defined in the iSNS Specification, RFC 4171.
This managed object may contain a zero-length string prior
to a device registering this value with the iSNS Server."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 15 }
isnsRegFcPortPpnWwn OBJECT-TYPE
SYNTAX FcNameIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Permanent Port Name (PPN) attribute is the FC Port Name WWPN
of the first Storage Node registered in the iSNS Database
that is associated with a particular FC Device (FC Node).
The PPN of all subsequent Storage Node registrations that
are associated with that FC Device (FC Node) SHALL be set
to the FC Port Name WWPN of the first Storage Node, as
defined in the iSNS Specification, RFC 4171. This managed
object may contain a zero-length string prior to a device
registering this value with the iSNS Server."
REFERENCE "RFC 4171, Section 6"
::= { isnsRegFcPortEntry 16 }
okay so the FC Port block is giving a lot π and the PPN one is the main character π because it has a SHALL in it, which means that rule is a real requirement, not a vibe π«Ά the way the spec wants every subsequent registration to match the first WWPN is so specific π
--
-- Mapping from FC Node to Entity - FC Port
--
isnsRegFcNodePortTable OBJECT-TYPE
SYNTAX SEQUENCE OF
IsnsRegFcNodePortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing the mapping of a registered FC Node and
associated registered iFCP Port to the supporting registered
Entity object in an iSNS Server instance."
::= { isnsRegFcNodeInfo 3 }
isnsRegFcNodePortEntry OBJECT-TYPE
SYNTAX IsnsRegFcNodePortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on one mapping from an FC Node and iFCP Port to
an Entity object registered in an iSNS."
INDEX { isnsServerIndex,
isnsRegFcNodeWwnn,
isnsRegFcPortWwpn }
::= { isnsRegFcNodePortTable 1 }
IsnsRegFcNodePortEntry ::= SEQUENCE {
isnsRegFcNodePortEntityIndex IsnsEntityIndexIdOrZero
}
isnsRegFcNodePortEntityIndex OBJECT-TYPE
SYNTAX IsnsEntityIndexIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Entity Index for the registered Entity object
associated with the FC Port and FC Node. This managed
object may contain the value of zero prior to a device
registering this value with the iSNS Server."
::= { isnsRegFcNodePortEntry 1 }
this next bit is the mapping table π§ it links an FC Node and iFCP Port up to an Entity, and the index is kind of a whole squad: isnsServerIndex, isnsRegFcNodeWwnn and isnsRegFcPortWwpn all together π«Ά the entity index is allowed to be zero until a device registers it, which is very relatable tbh π
--
-- iSNS Notifications Information -----------------
--
isnsNotificationsInfo OBJECT IDENTIFIER
::= { isnsObjects 2 }
isnsInstanceInfo OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Textual information about the notification event and the
iSNS Server generating the notification. An example is:
iSNS Server Started."
::= { isnsNotificationsInfo 1 }
isnsAddressNotificationType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The type of Inet address in isnsAddressNotification. If
the address is specified, then it must be a valid unicast
address and the value of this object must be ipv4(1),
ipv6(2), ipv4z(3), or ipv6z(4); otherwise, the value
of this object is unknown(0), and the value of
isnsAddressNotification is the zero-length string."
::= { isnsNotificationsInfo 2 }
isnsAddressNotification OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Identifies the IP address of the iSNS Server. The format of
this object is specified by isnsAddressNotificationType.
The IP address will always be specified in the notification
unless an error causes the IP address to not be known."
::= { isnsNotificationsInfo 3 }
isnsTcpPortNotification OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Indicates the TCP port the iSNS Server is using,
or 0 if TCP-based registrations are not supported."
::= { isnsNotificationsInfo 4 }
isnsUdpPortNotification OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Indicates the UDP port the iSNS Server is using,
or 0 if UDP-based registrations are not supported."
::= { isnsNotificationsInfo 5 }
--
-- iSNS Notification Block -----------------
--
isnsServerStart NOTIFICATION-TYPE
OBJECTS {
isnsInstanceInfo,
isnsAddressNotificationType,
isnsAddressNotification,
isnsTcpPortNotification,
isnsUdpPortNotification
}
STATUS current
DESCRIPTION
"This notification is sent when an iSNS Server begins
operation. The notification provides the following:
isnsInstanceInfo : iSNS Server textual information
isnsAddressTypeNotification : iSNS Server address type
isnsAddressNotification : iSNS Server address
isnsTcpPortNotification : iSNS Server TCP Port
isnsUdpPortNotification : iSNS Server UDP Port
"
::= { isnsNotifications 1 }
isnsServerShutdown NOTIFICATION-TYPE
OBJECTS {
isnsInstanceInfo,
isnsAddressNotificationType,
isnsAddressNotification,
isnsTcpPortNotification,
isnsUdpPortNotification
}
STATUS current
DESCRIPTION
"This notification is sent when an iSNS Server is
shutdown. The notification provides the following:
isnsInstanceInfo : iSNS Server textual information
isnsAddressTypeNotification : iSNS Server address type
isnsAddressNotification : iSNS Server address
isnsTcpPortNotification : iSNS Server TCP Port
isnsUdpPortNotification : iSNS Server UDP Port
"
::= { isnsNotifications 2 }
π okay the notifications part is so cute ngl: there are two of them, one for when the server starts and one for when it shuts down, and they both carry the same five objects πΈ the address type and address are the iSNS Server's own info, so the server is basically introducing itself π
------------------------------------------------------------
--
-- Compliance Information
--
isnsCompliances OBJECT IDENTIFIER ::= { isnsConformance 1 }
isnsIscsiServerCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Initial compliance statement for an iSNS Server
providing support to iSCSI clients."
MODULE -- this module
MANDATORY-GROUPS {
isnsServerAttributesGroup,
isnsServerIscsiControlNodeGroup,
isnsServerIscsiDdsDdObjGroup,
isnsServerRegIscsiObjGroup,
isnsServerNumObjectsGroup,
isnsNotificationsObjGroup,
isnsServerNotificationGroup
}
OBJECT isnsServerDiscoveryMcGroupType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, ipv6z
is required."
last but not least, the compliance bit π the iSCSI server compliance lists its mandatory groups, and the one object that gets a narrowed SYNTAX only needs unknown, ipv4, ipv6, ipv4z and ipv6z to be supported π¦
okay so this chunk is all MIB compliance stuff, the part that says which address types an implementation has to support π the code stays exactly as written, no cap
OBJECT isnsServerDiscoveryMcGroupAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z
and their related SIZE need to be supported."
OBJECT isnsDdPortalMemberAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, ipv6z
is required."
OBJECT isnsDdPortalMemberAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z
and their related SIZE need to be supported."
OBJECT isnsRegEntityManagementAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, ipv6z
is required."
OBJECT isnsRegEntityManagementAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z
and their related SIZE need to be supported."
OBJECT isnsRegPortalAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, ipv6z
is required."
OBJECT isnsRegPortalAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z
and their related SIZE need to be supported."
OBJECT isnsRegPgPortalAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, ipv6z
is required."
OBJECT isnsRegPgPortalAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z
and their related SIZE need to be supported."
OBJECT isnsAddressNotificationType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, ipv6z
is required."
OBJECT isnsAddressNotification
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z
and their related SIZE need to be supported."
::= { isnsCompliances 1 }
isnsIfcpServerCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Initial compliance statement for an iSNS Server
providing support to iFCP Clients."
MODULE -- this module
MANDATORY-GROUPS {
isnsServerAttributesGroup,
isnsServerIfcpPortControlNodeGroup,
isnsServerIfcpDdsDdObjGroup,
isnsServerRegIfcpObjGroup,
isnsServerNumObjectsGroup,
isnsNotificationsObjGroup,
isnsServerNotificationGroup
}
OBJECT isnsServerDiscoveryMcGroupType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsServerDiscoveryMcGroupAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
OBJECT isnsDdPortalMemberAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsDdPortalMemberAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
OBJECT isnsRegEntityManagementAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsRegEntityManagementAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
OBJECT isnsRegPortalAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsRegPortalAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
OBJECT isnsRegFcNodeAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsRegFcNodeAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
OBJECT isnsRegFcPortAddressType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsRegFcPortAddress
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
OBJECT isnsAddressNotificationType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
ipv4z(3), ipv6z(4) }
DESCRIPTION
"Only support for unknown, ipv4, ipv6, ipv4z, and ipv6z
is required."
OBJECT isnsAddressNotification
SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20 ))
DESCRIPTION
"Only addresses for unknown, ipv4, ipv6, ipv4z, ipv6z,
and their related SIZE need to be supported."
::= { isnsCompliances 2 }
isnsGroups OBJECT IDENTIFIER ::= { isnsConformance 2 }
isnsServerAttributesGroup OBJECT-GROUP
OBJECTS {
isnsServerName,
isnsServerIsnsVersion,
isnsServerVendorInfo,
isnsServerPhysicalIndex,
isnsServerTcpPort,
isnsServerUdpPort,
isnsServerDiscontinuityTime,
isnsServerRole,
isnsServerDiscoveryMethodsEnabled,
isnsServerDiscoveryMcGroupType,
isnsServerDiscoveryMcGroupAddress,
isnsServerEsiNonResponseThreshold,
isnsServerEnableControlNodeMgtScn,
isnsServerDefaultDdDdsStatus,
isnsServerUpdateDdDdsSupported,
isnsServerUpdateDdDdsEnabled
}
STATUS current
DESCRIPTION
"iSNS Server attributes."
::= { isnsGroups 1 }
isnsServerNumObjectsGroup OBJECT-GROUP
OBJECTS {
isnsNumDds,
isnsNumDd,
isnsNumEntities,
isnsNumPortals,
isnsNumPortalGroups,
isnsNumIscsiNodes,
isnsNumFcPorts,
isnsNumFcNodes,
isnsRegEntityInfoNumPortals,
isnsRegEntityInfoNumPortalGroups,
isnsRegEntityInfoNumIscsiNodes,
isnsRegEntityInfoNumFcPorts,
isnsRegEntityInfoNumFcNodes
}
STATUS current
DESCRIPTION
"Managed objects indicating the number of registered objects
in an iSNS Server or the number of registered objects
associated with a registered Entity. These managed objects
are optional to implement."
::= { isnsGroups 2 }
isnsServerIscsiControlNodeGroup OBJECT-GROUP
OBJECTS {
isnsControlNodeIscsiNodeName,
isnsControlNodeIscsiIsRegistered,
isnsControlNodeIscsiRcvMgtSCN
}
STATUS current
DESCRIPTION
"iSNS Server iSCSI control node managed objects."
::= { isnsGroups 3 }
isnsServerIfcpPortControlNodeGroup OBJECT-GROUP
OBJECTS {
isnsControlNodeFcPortIsRegistered,
isnsControlNodeFcPortRcvMgtSCN
}
STATUS current
DESCRIPTION
"iSNS Server iFCP Port control node managed objects."
::= { isnsGroups 4 }
isnsServerIscsiDdsDdObjGroup OBJECT-GROUP
OBJECTS {
isnsDdsSymbolicName,
isnsDdsStatus,
isnsDdsMemberSymbolicName,
isnsDdSymbolicName,
isnsDdFeatures,
isnsDdIscsiMemberName,
isnsDdIscsiMemberIsRegistered,
isnsDdPortalMemberAddressType,
isnsDdPortalMemberAddress,
isnsDdPortalMemberPortType,
isnsDdPortalMemberPort,
isnsDdPortalMemberIsRegistered
}
STATUS current
DESCRIPTION
"iSNS Server DDS and DD managed objects for iSCSI."
::= { isnsGroups 5 }
isnsServerIfcpDdsDdObjGroup OBJECT-GROUP
OBJECTS {
isnsDdsSymbolicName,
isnsDdsStatus,
isnsDdSymbolicName,
isnsDdFeatures,
isnsDdPortalMemberAddressType,
isnsDdPortalMemberAddress,
isnsDdPortalMemberPortType,
isnsDdPortalMemberPort,
isnsDdPortalMemberIsRegistered,
isnsDdFcPortMemberIsRegistered
}
STATUS current
DESCRIPTION
"iSNS Server DDS and DD managed objects for iFCP."
::= { isnsGroups 6 }
Heads up, the compliance statements above lean on a lot of "need to be supported" and "is required" wording, so the exact phrasing matters π§ More MIB goodies coming up next π
isnsServerRegIscsiObjGroup OBJECT-GROUP
OBJECTS {
isnsRegEntityEID,
isnsRegEntityProtocol,
isnsRegEntityManagementAddressType,
isnsRegEntityManagementAddress,
isnsRegEntityTimestamp,
isnsRegEntityVersionMin,
isnsRegEntityVersionMax,
isnsRegEntityRegistrationPeriod,
isnsRegEntityInfoNumPortals,
isnsRegEntityInfoNumPortalGroups,
isnsRegEntityInfoNumIscsiNodes,
isnsRegEntityInfoNumFcPorts,
isnsRegEntityInfoNumFcNodes,
isnsRegPortalAddressType,
isnsRegPortalAddress,
isnsRegPortalPortType,
isnsRegPortalPort,
isnsRegPortalSymbolicName,
isnsRegPortalEsiInterval,
isnsRegPortalEsiPortType,
isnsRegPortalEsiPort,
isnsRegPortalScnPortType,
isnsRegPortalScnPort,
isnsRegPortalSecurityInfo,
isnsRegPgIscsiNodeIndex,
isnsRegPgIscsiName,
isnsRegPgPortalPortalIndex,
isnsRegPgPortalAddressType,
isnsRegPgPortalAddress,
isnsRegPgPortalPortType,
isnsRegPgPortalPort,
isnsRegPgPGT,
isnsRegIscsiNodeName,
isnsRegIscsiNodeType,
isnsRegIscsiNodeAlias,
isnsRegIscsiNodeScnTypes,
isnsRegIscsiNodeWwnToken,
isnsRegIscsiNodeAuthMethod
}
STATUS current
DESCRIPTION
"iSNS Server registered iSCSI managed objects."
::= { isnsGroups 7 }
isnsServerRegIfcpObjGroup OBJECT-GROUP
OBJECTS {
isnsRegEntityEID,
isnsRegEntityProtocol,
isnsRegEntityManagementAddressType,
isnsRegEntityManagementAddress,
isnsRegEntityTimestamp,
isnsRegEntityVersionMin,
isnsRegEntityVersionMax,
isnsRegEntityRegistrationPeriod,
isnsRegEntityInfoNumPortals,
isnsRegEntityInfoNumPortalGroups,
isnsRegEntityInfoNumIscsiNodes,
isnsRegEntityInfoNumFcPorts,
isnsRegEntityInfoNumFcNodes,
isnsRegPortalAddressType,
isnsRegPortalAddress,
isnsRegPortalPortType,
isnsRegPortalPort,
isnsRegPortalSymbolicName,
isnsRegPortalEsiInterval,
isnsRegPortalEsiPortType,
isnsRegPortalEsiPort,
isnsRegPortalScnPortType,
isnsRegPortalScnPort,
isnsRegPortalSecurityInfo,
isnsRegFcPortID,
isnsRegFcPortType,
isnsRegFcPortSymbolicName,
isnsRegFcPortFabricPortWwn,
isnsRegFcPortHA,
isnsRegFcPortAddressType,
isnsRegFcPortAddress,
isnsRegFcPortFcCos,
isnsRegFcPortFc4Types,
isnsRegFcPortFc4Descr,
isnsRegFcPortFc4Features,
isnsRegFcPortScnTypes,
isnsRegFcPortRole,
isnsRegFcPortFcNodeWwnn,
isnsRegFcPortPpnWwn,
isnsRegFcNodeSymbolicName,
isnsRegFcNodeAddressType,
isnsRegFcNodeAddress,
isnsRegFcNodeIPA,
isnsRegFcNodeProxyIscsiName,
isnsRegFcNodeNumFcPorts,
isnsRegFcNodePortEntityIndex
}
STATUS current
DESCRIPTION
"iSNS Server registered iFCP managed objects."
::= { isnsGroups 8 }
isnsNotificationsObjGroup OBJECT-GROUP
OBJECTS {
isnsInstanceInfo,
isnsAddressNotificationType,
isnsAddressNotification,
isnsTcpPortNotification,
isnsUdpPortNotification
}
STATUS current
DESCRIPTION
"iSNS Notification managed objects."
::= { isnsGroups 9 }
isnsServerNotificationGroup NOTIFICATION-GROUP
NOTIFICATIONS {
isnsServerStart,
isnsServerShutdown
}
STATUS current
DESCRIPTION
"iSNS Server Notification managed objects."
::= { isnsGroups 10 }
END
6. IANA Considerations π
The MIB module here uses a few IANA-assigned OBJECT IDENTIFIER values, all recorded in the SMI Numbers registry. Here's the one that matters:
Descriptor OBJECT IDENTIFIER value
---------- -----------------------
isnsMIB { mib-2 163 }
This RFC also uses the IANA registry of iSNS parameters, which was created for the iSNS Specification [RFC4171] and lives at http://www.iana.org/assignments/isns-parameters. Specifically, the isnsRegEntityProtocol values in the MIB module are the Block Storage Protocol values that IANA assigns and documents at that same address. β¨
7. Security Considerations π¨
Okay, bestie, this section is serious, so let's get into it. π The good news is that there are no management objects in this MIB module with a MAX-ACCESS of read-write and/or read-create. So if this MIB module is implemented correctly, there's no way for an intruder to alter or create any of its management objects through direct SNMP SET operations. π
Some of the readable objects here (anything with a MAX-ACCESS other than not-accessible) might be sensitive or vulnerable depending on the network. That means it's really important to lock down even GET and/or NOTIFY access to them, and maybe even encrypt their values when they travel over the network via SNMP. π These are the tables and objects, plus why they're sensitive:
isnsDdsMemberTabletells you which Discovery Domains are allowed to be enabled at the same time.isnsDdTableholds info about Discovery Domains, which contain storage nodes that can talk to each other and swap storage data.isnsDdIscsiMemberTableshows which iSCSI nodes live in which Discovery Domains.isnsDdPortalMemberTableshows which iSCSI portals live in which Discovery Domains.isnsDdFcPortMemberTableshows which iFCP FC N_Ports live in which Discovery Domains.isnsControlNodeIscsiTableshows which iSCSI nodes could possibly control an iSNS server. πisnsControlNodeFcPortTableshows which iFCP FC N_Ports could possibly control an iSNS server. π
All of these object tables give away info about storage object sessions, and they can basically tell someone who is talking to whom and who is exchanging storage data. Yikes. π
Heads up: SNMP versions before SNMPv3 didn't have adequate security. Even if the network itself is secure (for example, by using IPsec), there's still no control over who on that secure network can GET or SET (read, change, create, or delete) the objects in this MIB module. Not it. π ββοΈ
It is RECOMMENDED that implementers look at the security features of the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). π
Also, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. π«Ά And it's a customer/operator responsibility to make sure the SNMP entity giving access to an instance of this MIB module is configured so the objects are only available to the principals (users) who legitimately have the right to GET or SET (change, create, or delete) them. Keep your access list tight, periodt. π
8. Normative References π
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case J.,
Rose, M., and S. Waldbusser, "Structure of Management
Information Version 2 (SMIv2)", STD 58, RFC 2578, April
1999.
[RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Textual Conventions for
SMIv2", STD 58, RFC 2579, April 1999.
[RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Conformance Statements for
SMIv2", STD 58, RFC 2580, April 1999.
[RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
Architecture for Describing Simple Network Management
Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
December 2002.
[RFC3720] Satran, J., Meth, K., Sapuntzakis, C., Chadalapaka, M.,
and E. Zeidner, "Internet Small Computer Systems Interface
(iSCSI)", RFC 3720, March 2004.
[RFC4001] Daniele, M., Haberman, B., Routhier, S., and J.
Schoenwaelder, "Textual Conventions for Internet Network
Addresses", RFC 4001, February 2005.
[RFC4044] McCloghrie, K., "Fibre Channel Management MIB", RFC 4044,
May 2005.
[RFC4133] McCloghrie, K. and A. Bierman, "Entity MIB (Version 3)",
RFC 4133, August 2005.
[RFC4171] Tseng, J., Gibbons, K., Travostino, F., Du Laney, C., and
J. Souza, "Internet Storage Name Service (iSNS)", RFC
4171, September 2005.
[RFC4172] Monia, C., Mullendore, R., Travostino, F., Jeong, W., and
M. Edwards, "iFCP - A Protocol for Internet Fibre Channel
Storage Networking", RFC 4172, September 2005.
9. Informative References π§
[RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart,
"Introduction and Applicability Statements for Internet-
Standard Management Framework", RFC 3410, December 2002.
10. Acknowledgements π«Ά
This memo came out of the IP Storage (IPS) working group in the Internet Engineering Task Force, so big shoutout to everyone there. π The authors want to thank everyone in the IPS WG who contributed and commented, especially these folks:
IPS WG Chair: David Black
Former Editors: Josh Tseng and Tom McSweeney
MIB Editors: Keith McCloghrie and Bert Wijnen
Authors' Addresses πΈ
Kevin Gibbons
2Wire, Inc.
1704 Automation Parkway
San Jose, CA 95131
USA
Tel: +1 408-895-1387
Fax: +1 408-428-9590
EMail: kgibbons@yahoo.com
G.D. Ramkumar
SnapTell, Inc.
2741 Middlefield Rd, Suite 200
Palo Alto, CA 94306
USA
Tel: +1 650-326-7627
Fax: +1 650-326-7620
EMail: gramkumar@stanfordalumni.org
Scott Kipp
Brocade
4 McDATA Pkwy
Broomfield, CO 80021
USA
Tel: +1 720-558-3452
Fax: +1 720-558-8999
EMail: skipp@brocade.com
Full Copyright Statement β
Copyright (C) The IETF Trust (2007). π·
This document is subject to the rights, licenses and restrictions in BCP 78. Except as set out there, the authors keep all their rights. π
The document and the information in it are provided on an "AS IS" basis, and the disclaimer below applies. Read it in full, because it's legally important and not very fun:
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property β¨
Okay so the IETF is literally not taking a side π ββοΈ on whether any intellectual property rights (or other rights) that someone might claim over the tech in this doc are valid or in scope π€·ββοΈ. It also doesn't say whether a license for those rights might or might not be available. And they didn't do their own independent hunt for any such rights, so no promises there π . If you want the rules for rights in RFC docs, check out BCP 78 and BCP 79 π. Those are the bible for this stuff π«Ά.
Copies of IPR disclosures sent to the IETF Secretariat are available, along with any assurances of licenses that'll be made available, or the results of an attempt to get a general license or permission for implementers or users to use those proprietary rights. You can find all of that on the IETF online IPR repository at http://www.ietf.org/ipr ποΈβ¨.
The IETF invites any interested party to bring its attention to any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard π₯. Send that info to the IETF at ietf-ipr@ietf.org π. Main character energy, honestly. π
Acknowledgement π
Funding for the RFC Editor function is currently provided by the Internet Society πΈ. Thank you, Internet Society! π«Άπ
π¦ where this page comes from
- ietf: rfc4939 2007-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms