433 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			433 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
-- *****************************************************************
 | 
						|
-- TN-TC:  Textual Conventions
 | 
						|
--
 | 
						|
-- Copyright (c) 2009 by Transition Networks, Inc.
 | 
						|
-- All rights reserved.
 | 
						|
-- *****************************************************************
 | 
						|
--
 | 
						|
 | 
						|
TN-TC DEFINITIONS ::= BEGIN
 | 
						|
 | 
						|
IMPORTS
 | 
						|
    Integer32 FROM SNMPv2-SMI
 | 
						|
    Gauge32 FROM SNMPv2-SMI
 | 
						|
    TEXTUAL-CONVENTION
 | 
						|
        FROM SNMPv2-TC;
 | 
						|
 | 
						|
-- definition of textual conventions
 | 
						|
 | 
						|
TNInteger8 ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents an 8-bit signed integer."
 | 
						|
    SYNTAX      INTEGER (-128..127)
 | 
						|
 | 
						|
TNInteger16 ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a 16-bit signed integer."
 | 
						|
    SYNTAX      INTEGER (-32768..32767)
 | 
						|
 | 
						|
TNInteger64 ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "8x"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a 64-bit signed integer encoded as two's complement in
 | 
						|
        network order."
 | 
						|
    SYNTAX      OCTET STRING (SIZE (8))
 | 
						|
 | 
						|
TNUnsigned8 ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents an 8-bit unsigned integer."
 | 
						|
    SYNTAX      Gauge32 (0..255)
 | 
						|
 | 
						|
TNUnsigned16 ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a 16-bit unsigned integer."
 | 
						|
    SYNTAX      Gauge32 (0..65535)
 | 
						|
 | 
						|
TNUnsigned64 ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "8x"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a 64-bit unsigned integer encoded in network order."
 | 
						|
    SYNTAX      OCTET STRING (SIZE (8))
 | 
						|
 | 
						|
TNTimeStamp ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "8x"
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a timestamp in seconds since epoch. The data is encoded as
 | 
						|
        a 64-bit unsigned integer in network order."
 | 
						|
    SYNTAX      OCTET STRING (SIZE (8))
 | 
						|
 | 
						|
TNEtherType ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "2x"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a 16-bit Ethernet Type."
 | 
						|
    SYNTAX      Gauge32 (0..65535)
 | 
						|
 | 
						|
TNInterfaceIndex ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "The interface index is a unique identification of an arbitrary
 | 
						|
         interface in the system. Example of interfaces could be physical ports,
 | 
						|
         aggregations, VLAN interfaces and others.
 | 
						|
 | 
						|
         The interface indexes used by the system is deterministic and is
 | 
						|
         chosen using the schema below.
 | 
						|
 | 
						|
         NONE                          0 -             0 (standalone/stacking)
 | 
						|
         
 | 
						|
         Usid1 /ports                  1 -           999 (standalone/stacking)
 | 
						|
         
 | 
						|
         Usid1 /llagr                501 -          4999 (standalone/stacking)
 | 
						|
         
 | 
						|
         VLAN                      50001 -        54.095 (standalone/stacking)
 | 
						|
 | 
						|
         GLAG                100.000.001 -   100.000.999 (standalone/stacking)
 | 
						|
 | 
						|
         EVC                 200.000.001 -   200.099.999 (standalone)
 | 
						|
 | 
						|
         MPLS links          300.000.001 -   300.009.999 (standalone)
 | 
						|
 | 
						|
         MPLS tunnels        400.000.001 -   400.099.999 (standalone)
 | 
						|
 | 
						|
         MPLS pseudo-wires   500.000.001 -   500.099.999 (standalone)
 | 
						|
 | 
						|
         MPLS lsp            600.000.001 -   600.099.999 (standalone)"
 | 
						|
 | 
						|
    SYNTAX       Integer32 (0..2147483647)
 | 
						|
 | 
						|
TNRowEditorState ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "The RowEditorState is used both as a column in the dynamic tables, and
 | 
						|
         as a object in the row editor. The meaning of the row editor state
 | 
						|
         depends on the context where it is used.
 | 
						|
 | 
						|
         In either case it is used to implement actions related to add or delete
 | 
						|
         columns in dynamic tables.
 | 
						|
 | 
						|
         When used as a column in a dynamic table
 | 
						|
         ----------------------------------------
 | 
						|
 | 
						|
         Read back of this value will always be zero. If the value 1 is written
 | 
						|
         to this object the given row will be deleted. Values different from 0
 | 
						|
         and 1 are reserved for future use and should not be used.
 | 
						|
 | 
						|
         When used as an object in a row editor
 | 
						|
         --------------------------------------
 | 
						|
 | 
						|
         A value used to control the row editor protocol. The values 0-255 are
 | 
						|
         reserved to be used in the row editor protocol, all other values tokes
 | 
						|
         the manager can use to reserve the row editor.
 | 
						|
 | 
						|
         The values 0, 1 and 2 is currently use din the row editor protocol
 | 
						|
         while the values 3-255 are reserved for future use.
 | 
						|
 | 
						|
         Following is the names of the values used in the row editor protocol:
 | 
						|
 | 
						|
           0:              IDLE STATE
 | 
						|
           1:              CLEAR-ACTION
 | 
						|
           2:              COMMIT-ACTION
 | 
						|
           256-4294967295: MANAGER-ID
 | 
						|
 | 
						|
         The following state machine defines the row editor protocol:
 | 
						|
 | 
						|
                 +--------------+                 +------------------+
 | 
						|
                 |              |<----------------|                  |
 | 
						|
                 |              |   CLEAR         |                  |
 | 
						|
                 |     IDLE     |<----------------|     RESERVED     |
 | 
						|
                 |              |   COMMIT        |                  |
 | 
						|
                 |              |---------------->|                  |
 | 
						|
                 +--------------+   MANAGER-ID    +------------------+
 | 
						|
 | 
						|
         When the RowEditorState is being read one will either read the value
 | 
						|
         zero: meaning that the row editor is in the idle state. Or a value
 | 
						|
         between 256-4294967295: meaning that the row editor is reserved with
 | 
						|
         the given ID.
 | 
						|
 | 
						|
         When the row editor is in the IDLE state the manager may try to reserve
 | 
						|
         it by writing its own MANAGER-ID to the RowEditorState object. If the
 | 
						|
         write succeeds the manager can read-back the MANAGER-ID.
 | 
						|
 | 
						|
         When the row editor is in the RESERVED state the manager can either
 | 
						|
         clear the changes by writing CLEAR, or it can commit the changes by
 | 
						|
         writing COMMIT. Both actions will cause the state to jump back to the
 | 
						|
         IDLE state, but only the COMMIT will cause the row to be added."
 | 
						|
 | 
						|
    SYNTAX       Gauge32
 | 
						|
 | 
						|
TNPercent ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "An integer in the range 0..100 representing a percent value"
 | 
						|
    SYNTAX       Gauge32(0..100)
 | 
						|
 | 
						|
TNPortList ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "128x"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "A list of ports that may be distributed across more stack units.
 | 
						|
 | 
						|
         The type should be interpreted as a sequence of bits, each bit
 | 
						|
         representing a port. If a bit is set (1) the represented port is
 | 
						|
         included in the port list. If a bit is not set (0) the represented port
 | 
						|
         is not included in the port list.
 | 
						|
 | 
						|
         Each switch in a stack is represented by an ID in the range [1-16] both
 | 
						|
         included. Each switch in the stack has a reserved range of 64 bits
 | 
						|
         or 8 bytes in this octet string. If the switch is not stackable it will
 | 
						|
         be represented as 'Switch 1'.
 | 
						|
 | 
						|
         The switch with ID 1 owns the byte range 0-7, switch ID 2 owns the
 | 
						|
         byte range 8-15, etc.
 | 
						|
 | 
						|
         The physical ports are represented by the bit index relative to the
 | 
						|
         range owned by a given switch. Bit number zero is the least significant
 | 
						|
         bit of the first entry in the byte sequence owned by the switch (port
 | 
						|
         number 0 if such a port exists). Bit number one is the second least
 | 
						|
         significant bit in the first byte of the range owned by the switch.
 | 
						|
 | 
						|
         This is illustrated below:
 | 
						|
 | 
						|
          Port 7 switch 1                 Port 7 switch 2
 | 
						|
          ^    Port 0 switch 1            ^    Port 0 switch 2
 | 
						|
          |    ^ Port 15 switch 1         |    ^     Port 63 switch 2
 | 
						|
          |    | ^    Port 8 switch 1     |    |     ^     Port 56 switch 2
 | 
						|
          |    | |    ^ Port 23 switch 1       |     |     ^
 | 
						|
          |    | |    | ^    Port 16 switch 1        |     |
 | 
						|
          |    | |    | |    ^     Port 63 switch 1        |
 | 
						|
          |    | |    | |    |     ^    Port 56 switch 1   |
 | 
						|
          |    | |    | |    |     |    ^                  |
 | 
						|
          |    | |    | |    |     |    | |    |     |     |
 | 
						|
          v    v v    v v    v     v    v v    v     v     v
 | 
						|
         +---------------------------------------------------------------+
 | 
						|
         |byte 0|byte 1|byte 2|...|byte 7|byte 8|...|byte 15|...|byte 127|
 | 
						|
         +---------------------------------------------------------------+
 | 
						|
         \______________  ______________/ \________  ______/ \____  ____/
 | 
						|
                        \/                         \/             \/
 | 
						|
                      Switch 1                  Switch 2       Switch 3-16
 | 
						|
 | 
						|
         The octet string is truncated at most significant byte which is not
 | 
						|
         zero. An empty port list is encoded as [0x00].
 | 
						|
 | 
						|
         Example: a non-stackable switch where 48 is the highest port number
 | 
						|
         needs seven bytes to represent a complete port list. If the port list
 | 
						|
         only contains port 1, 2 and 20 then the SNMP encoded port list is:
 | 
						|
         [0x06, 0x00, 0x10].
 | 
						|
 | 
						|
         NOTE: Even though port 0 does not exists in the port map it is still
 | 
						|
         represented by a bit in this port list. The same is true for the higher
 | 
						|
         indices. Configuring non-existing ports using the port list will have
 | 
						|
         no effect on the target."
 | 
						|
    SYNTAX       OCTET STRING (SIZE (1..128))
 | 
						|
 | 
						|
TNVlan ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "d"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "An integer representing a VLAN ID."
 | 
						|
    SYNTAX      Gauge32 (1..4095)
 | 
						|
 | 
						|
TNVlanListQuarter ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "128x"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "A list representing 1024 VLAN IDs.
 | 
						|
 | 
						|
         The type should be interpreted as a sequence of bits, each bit
 | 
						|
         representing one VLAN ID. If a bit is set (1) the represented VLAN is
 | 
						|
         included in the VLAN list. If a bit is not set (0) the represented VLAN
 | 
						|
         is not included in the VLAN list.
 | 
						|
 | 
						|
         The least significant bit of each byte represents a smaller VLAN ID
 | 
						|
         than a more significant bit of a byte.
 | 
						|
 | 
						|
         If for example the VLAN list represents VLAN IDs from 0 to 1023,
 | 
						|
         bit 0 of the first byte represents VLAN ID 0, bit 1 of the first byte
 | 
						|
         represents VLAN ID 1, and so on. The most significant bit of the 128th
 | 
						|
         byte therefore represents VLAN ID 1023.
 | 
						|
 | 
						|
         An implementation that needs to represent all 4K VLANs will divide
 | 
						|
         the VLAN list into four equally sized objects. VLAN ID 0 is included
 | 
						|
         in the first object even though it is not used."
 | 
						|
    SYNTAX       OCTET STRING (SIZE (128))
 | 
						|
 | 
						|
TNDisplayString ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "255a"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents textual information taken from the ASCII character 
 | 
						|
         set, as defined in ANSI X3.4-1986 with some restrictions.
 | 
						|
 | 
						|
         The following rules apply:
 | 
						|
 | 
						|
          - only character codes 32-126 (decimal) are supported
 | 
						|
 | 
						|
          - the graphics characters (32-126) are interpreted as
 | 
						|
            US ASCII
 | 
						|
 | 
						|
         Any object defined using this syntax may not exceed 255
 | 
						|
         characters in length."
 | 
						|
    SYNTAX       OCTET STRING (SIZE (0..255))
 | 
						|
 | 
						|
TNInetAddress ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "255a"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents an internet address. Following is the list of supported
 | 
						|
        address types: IPv4 address, IPv6 address, Domain name or No-Address.
 | 
						|
 | 
						|
        The addresses are encoded as a human readable string as defined here:
 | 
						|
 | 
						|
         - IPv4 address is encoded as 'a.b.c.d' where a-d are integer numbers in
 | 
						|
           the range from 0-255.
 | 
						|
 | 
						|
         - IPv6 address is encoded as defined in RFC5952.
 | 
						|
 | 
						|
         - Domain names are passed through in their native representation.
 | 
						|
 | 
						|
         - No-Address is encoded as the string literal: '<no-address>'.
 | 
						|
 | 
						|
        This type is not allowed to be used as indices in tables."
 | 
						|
    SYNTAX       OCTET STRING (SIZE (1..253))
 | 
						|
 | 
						|
TNIpAddress ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "255a"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents an internet address. Following is the list of supported
 | 
						|
        address types: IPv4 address, IPv6 address or No-Address.
 | 
						|
 | 
						|
        The addresses are encoded as a human readable string as defined here:
 | 
						|
 | 
						|
         - IPv4 address is encoded as 'a.b.c.d' where a-d are integer numbers in
 | 
						|
           the range from 0-255.
 | 
						|
 | 
						|
         - IPv6 address is encoded as defined in RFC5952.
 | 
						|
 | 
						|
         - No-Address is encoded as the string literal: '<no-address>'."
 | 
						|
    SYNTAX       OCTET STRING (SIZE (1..46))
 | 
						|
 | 
						|
TNVclProtoEncap ::= TEXTUAL-CONVENTION
 | 
						|
    DISPLAY-HINT "6x"
 | 
						|
    STATUS       current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a protocol encapsulation, needed by the Protocol part of
 | 
						|
        the VCL module.
 | 
						|
 | 
						|
        The protocol encapsulation type, along with the respective encapsulation
 | 
						|
        fields are encoded as an octet string of variable size ranging from 3 to 6.
 | 
						|
 | 
						|
        Currently, the VCL module only supports three protocol encapsulation types:
 | 
						|
 | 
						|
        - Ethernet II encapsulation, defined by setting the first octet to 1. Two more
 | 
						|
          octets are used to describe the 'type' field. The type can range from 0x0600-0xffff.
 | 
						|
 | 
						|
          I.e. ETH2:    1            TYPE
 | 
						|
                     {byte 0} {byte 1 +  byte 2}
 | 
						|
 | 
						|
          E.g. 1.2048 := ETH2, TYPE = 0x0800
 | 
						|
 | 
						|
        - LLC SNAP encapsulation, defined by setting the first octet to 2. Three more
 | 
						|
          octets are used for the 'OID' field and two for the 'PID' field. The OID can range
 | 
						|
          from 0x000000-0xffffff and the PID from 0x0000-0xffff. Special case is when OID is
 | 
						|
          0x000000; then PID can only range from 0x0600-0xffff.
 | 
						|
 | 
						|
          I.e. LLC-SNAP:    2      OUI[0]   OUI[1]   OUI[2]         PID
 | 
						|
                         {byte 0} {byte 1} {byte 2} {byte 3} {byte 4 +  byte 5}
 | 
						|
 | 
						|
          E.g. 2.0.1.24.562 := SNAP, OUI = 0x00:01:18, PID = 0x0232
 | 
						|
 | 
						|
        - LLC Other encapsulation, defined by setting the first octet to 3. Two more
 | 
						|
          octets are used for the 'DSAP' and 'SSAP' fields respectively. Each of these two fields
 | 
						|
          can range from 0-255
 | 
						|
 | 
						|
          I.e. LLC-OTHER:    3       DSAP     SSAP
 | 
						|
                          {byte 0} {byte 1} {byte 2}
 | 
						|
 | 
						|
          E.g. 3.42.85 := LLC, DSAP = 0x2A, SSAP = 0x55
 | 
						|
 | 
						|
        Default, empty encapsulation is 0.0.0"
 | 
						|
    SYNTAX       OCTET STRING (SIZE (3..6))
 | 
						|
 | 
						|
TNBitType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a bit selector."
 | 
						|
    SYNTAX      INTEGER { any(0), zero(1), one(2) }
 | 
						|
 | 
						|
TNDestMacType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a destination MAC type selector."
 | 
						|
    SYNTAX      INTEGER { any(0), unicast(1), multicast(2), broadcast(3) }
 | 
						|
 | 
						|
TNVcapKeyType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a VCAP key type selector."
 | 
						|
    SYNTAX      INTEGER { normal(0), doubleTag(1), ipAddr(2), macIpAddr(3) }
 | 
						|
 | 
						|
TNVlanTagPriority ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "VLAN priority."
 | 
						|
    SYNTAX      INTEGER { any(0), value0(1), value1(2), value2(3), value3(4), value4(5), value5(6), value6(7), value7(8), range0to1(9), range2to3(10), range4to5(11), range6to7(12), range0to3(13), range4to7(14) }
 | 
						|
 | 
						|
TNVlanTagType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a VLAN tag type selector."
 | 
						|
    SYNTAX      INTEGER { any(0), untagged(1), tagged(2), cTagged(3), sTagged(4) }
 | 
						|
 | 
						|
TNASRType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents an Any/Specific/Range selector."
 | 
						|
    SYNTAX      INTEGER { any(0), specific(1), range(2) }
 | 
						|
 | 
						|
TNAdvDestMacType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents a destination MAC type selector."
 | 
						|
    SYNTAX      INTEGER { any(0), unicast(1), multicast(2), broadcast(3), specific(4) }
 | 
						|
 | 
						|
TNASType ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "Represents an Any/Specific selector."
 | 
						|
    SYNTAX      INTEGER { any(0), specific(1) }
 | 
						|
 | 
						|
TNSfpTransceiver ::= TEXTUAL-CONVENTION
 | 
						|
    STATUS      current
 | 
						|
    DESCRIPTION
 | 
						|
        "This enumerations show the SFP transceiver type."
 | 
						|
    SYNTAX      INTEGER {
 | 
						|
        none(0),
 | 
						|
        notSupported(1),
 | 
						|
        sfp100FX(2),
 | 
						|
        sfp1000BaseT(7),
 | 
						|
        sfp1000BaseCx(8),
 | 
						|
        sfp1000BaseSx(9),
 | 
						|
        sfp1000BaseLx(10),
 | 
						|
        sfp1000BaseX(11),
 | 
						|
        sfp2G5(12),
 | 
						|
        sfp5G(13),
 | 
						|
        sfp10G(14)
 | 
						|
    }
 | 
						|
 | 
						|
END
 |