and added files
[bcm963xx.git] / userapps / opensource / net-snmp / mibs / TUNNEL-MIB.txt
1 TUNNEL-MIB DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     MODULE-IDENTITY, OBJECT-TYPE, transmission,
5     Integer32, IpAddress             FROM SNMPv2-SMI
6     RowStatus                        FROM SNMPv2-TC
7     MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
8     ifIndex, InterfaceIndexOrZero    FROM IF-MIB;
9
10 tunnelMIB MODULE-IDENTITY
11     LAST-UPDATED "9908241200Z" -- August 24, 1999
12     ORGANIZATION "IETF Interfaces MIB Working Group"
13     CONTACT-INFO
14             " Dave Thaler
15               Microsoft Corporation
16               One Microsoft Way
17               Redmond, WA  98052-6399
18               EMail: dthaler@dthaler.microsoft.com"
19     DESCRIPTION
20             "The MIB module for management of IP Tunnels, independent of
21             the specific encapsulation scheme in use."
22     REVISION     "9908241200Z" -- August 24, 1999
23     DESCRIPTION
24             "Initial version, published as RFC 2667."
25     ::= { transmission 131 }
26
27 tunnelMIBObjects OBJECT IDENTIFIER ::= { tunnelMIB 1 }
28
29 tunnel      OBJECT IDENTIFIER ::= { tunnelMIBObjects 1 }
30
31 -- the IP Tunnel MIB-Group
32 --
33 -- a collection of objects providing information about
34 -- IP Tunnels
35
36 tunnelIfTable OBJECT-TYPE
37     SYNTAX     SEQUENCE OF TunnelIfEntry
38     MAX-ACCESS not-accessible
39     STATUS     current
40     DESCRIPTION
41             "The (conceptual) table containing information on configured
42             tunnels."
43     ::= { tunnel 1 }
44
45 tunnelIfEntry OBJECT-TYPE
46     SYNTAX     TunnelIfEntry
47     MAX-ACCESS not-accessible
48     STATUS     current
49     DESCRIPTION
50             "An entry (conceptual row) containing the information on a
51             particular configured tunnel."
52     INDEX      { ifIndex }
53     ::= { tunnelIfTable 1 }
54
55 TunnelIfEntry ::= SEQUENCE {
56     tunnelIfLocalAddress            IpAddress,
57     tunnelIfRemoteAddress           IpAddress,
58     tunnelIfEncapsMethod            INTEGER,
59     tunnelIfHopLimit                Integer32,
60     tunnelIfSecurity                INTEGER,
61     tunnelIfTOS                     Integer32
62 }
63
64 tunnelIfLocalAddress OBJECT-TYPE
65     SYNTAX     IpAddress
66     MAX-ACCESS read-only
67     STATUS     current
68     DESCRIPTION
69             "The address of the local endpoint of the tunnel (i.e., the
70             source address used in the outer IP header), or 0.0.0.0 if
71             unknown."
72     ::= { tunnelIfEntry 1 }
73
74 tunnelIfRemoteAddress OBJECT-TYPE
75     SYNTAX     IpAddress
76     MAX-ACCESS read-only
77     STATUS     current
78     DESCRIPTION
79             "The address of the remote endpoint of the tunnel (i.e., the
80             destination address used in the outer IP header), or 0.0.0.0
81             if unknown."
82     ::= { tunnelIfEntry 2 }
83
84 tunnelIfEncapsMethod OBJECT-TYPE
85     SYNTAX     INTEGER {
86                    other(1),   -- none of the following
87                    direct(2),  -- no intermediate header
88                    gre(3),     -- GRE encapsulation
89                    minimal(4), -- Minimal encapsulation
90                    l2tp(5),    -- L2TP encapsulation
91                    pptp(6),    -- PPTP encapsulation
92                    l2f(7),     -- L2F encapsulation
93                    udp(8),     -- UDP encapsulation
94                    atmp(9)     -- ATMP encapsulation
95
96                }
97     MAX-ACCESS read-only
98     STATUS     current
99     DESCRIPTION
100             "The encapsulation method used by the tunnel. The value
101             direct indicates that the packet is encapsulated directly
102             within a normal IPv4 header, with no intermediate header,
103             and unicast to the remote tunnel endpoint (e.g., an RFC 2003
104             IP-in-IP tunnel, or an RFC 1933 IPv6-in-IPv4 tunnel). The
105             value minimal indicates that a Minimal Forwarding Header
106             (RFC 2004) is inserted between the outer header and the
107             payload packet. The value UDP indicates that the payload
108             packet is encapsulated within a normal UDP packet (e.g., RFC
109             1234).  The remaining protocol-specific values indicate that
110             a header of the protocol of that name is inserted between
111             the outer header and the payload header."
112     ::= { tunnelIfEntry 3 }
113
114 tunnelIfHopLimit OBJECT-TYPE
115     SYNTAX     Integer32 (0..255)
116     MAX-ACCESS read-write
117     STATUS     current
118     DESCRIPTION
119             "The TTL to use in the outer IP header. A value of 0
120             indicates that the value is copied from the payload's
121             header."
122     ::= { tunnelIfEntry 4 }
123
124 tunnelIfSecurity OBJECT-TYPE
125     SYNTAX     INTEGER {
126                    none(1),   -- no security
127                    ipsec(2),  -- IPSEC security
128                    other(3)
129                }
130     MAX-ACCESS read-only
131     STATUS     current
132     DESCRIPTION
133             "The method used by the tunnel to secure the outer IP
134             header.  The value ipsec indicates that IPsec is used
135             between the tunnel endpoints for authentication or
136             encryption or both.  More specific security-related
137             information may be available in a MIB for the security
138             protocol in use."
139     ::= { tunnelIfEntry 5 }
140
141 tunnelIfTOS OBJECT-TYPE
142     SYNTAX     Integer32 (-2..63)
143     MAX-ACCESS read-write
144     STATUS     current
145     DESCRIPTION
146             "The method used to set the high 6 bits of the TOS in the
147             outer IP header.  A value of -1 indicates that the bits are
148             copied from the payload's header. A value of -2 indicates
149             that a traffic conditioner is invoked and more information
150             may be available in a traffic conditioner MIB.  A value
151             between 0 and 63 inclusive indicates that the bit field is
152             set to the indicated value."
153     ::= { tunnelIfEntry 6 }
154
155 tunnelConfigTable OBJECT-TYPE
156     SYNTAX     SEQUENCE OF TunnelConfigEntry
157     MAX-ACCESS not-accessible
158     STATUS     current
159     DESCRIPTION
160             "The (conceptual) table containing information on configured
161             tunnels.  This table can be used to map a set of tunnel
162             endpoints to the associated ifIndex value.  It can also be
163             used for row creation.  Note that every row in the
164             tunnelIfTable with a fixed destination address should have a
165             corresponding row in the tunnelConfigTable, regardless of
166             whether it was created via SNMP."
167     ::= { tunnel 2 }
168
169 tunnelConfigEntry OBJECT-TYPE
170     SYNTAX     TunnelConfigEntry
171     MAX-ACCESS not-accessible
172     STATUS     current
173     DESCRIPTION
174             "An entry (conceptual row) containing the information on a
175             particular configured tunnel."
176     INDEX      { tunnelConfigLocalAddress,
177                  tunnelConfigRemoteAddress,
178                  tunnelConfigEncapsMethod,
179                  tunnelConfigID }
180     ::= { tunnelConfigTable 1 }
181
182 TunnelConfigEntry ::= SEQUENCE {
183     tunnelConfigLocalAddress            IpAddress,
184     tunnelConfigRemoteAddress           IpAddress,
185     tunnelConfigEncapsMethod            INTEGER,
186     tunnelConfigID                      Integer32,
187     tunnelConfigIfIndex                 InterfaceIndexOrZero,
188     tunnelConfigStatus                  RowStatus
189 }
190
191 tunnelConfigLocalAddress OBJECT-TYPE
192     SYNTAX     IpAddress
193     MAX-ACCESS not-accessible
194     STATUS     current
195     DESCRIPTION
196             "The address of the local endpoint of the tunnel, or 0.0.0.0
197             if the device is free to choose any of its addresses at
198             tunnel establishment time."
199     ::= { tunnelConfigEntry 1 }
200
201 tunnelConfigRemoteAddress OBJECT-TYPE
202     SYNTAX     IpAddress
203     MAX-ACCESS not-accessible
204     STATUS     current
205     DESCRIPTION
206             "The address of the remote endpoint of the tunnel."
207     ::= { tunnelConfigEntry 2 }
208
209 tunnelConfigEncapsMethod OBJECT-TYPE
210     SYNTAX     INTEGER {
211                    other(1),   -- none of the following
212                    direct(2),  -- no intermediate header
213                    gre(3),     -- GRE encapsulation
214                    minimal(4), -- Minimal encapsulation
215                    l2tp(5),    -- L2TP encapsulation
216                    pptp(6),    -- PPTP encapsulation
217                    l2f(7),     -- L2F encapsulation
218                    udp(8),     -- UDP encapsulation
219                    atmp(9)
220                }
221     MAX-ACCESS not-accessible
222     STATUS     current
223     DESCRIPTION
224             "The encapsulation method used by the tunnel."
225     ::= { tunnelConfigEntry 3 }
226
227 tunnelConfigID OBJECT-TYPE
228     SYNTAX     Integer32 (1..2147483647)
229     MAX-ACCESS not-accessible
230     STATUS     current
231     DESCRIPTION
232             "An identifier used to distinguish between multiple tunnels
233             of the same encapsulation method, with the same endpoints.
234             If the encapsulation protocol only allows one tunnel per set
235             of endpoint addresses (such as for GRE or IP-in-IP), the
236             value of this object is 1.  For encapsulation methods (such
237             as L2F) which allow multiple parallel tunnels, the manager
238             is responsible for choosing any ID which does not conflict
239             with an existing row, such as choosing a random number."
240     ::= { tunnelConfigEntry 4 }
241
242 tunnelConfigIfIndex OBJECT-TYPE
243     SYNTAX     InterfaceIndexOrZero
244     MAX-ACCESS read-only
245     STATUS     current
246     DESCRIPTION
247             "If the value of tunnelConfigStatus for this row is active,
248             then this object contains the value of ifIndex corresponding
249             to the tunnel interface.  A value of 0 is not legal in the
250             active state, and means that the interface index has not yet
251             been assigned."
252     ::= { tunnelConfigEntry 5 }
253
254 tunnelConfigStatus OBJECT-TYPE
255     SYNTAX     RowStatus
256     MAX-ACCESS read-create
257     STATUS     current
258     DESCRIPTION
259             "The status of this row, by which new entries may be
260             created, or old entries deleted from this table. The agent
261             need not support setting this object to createAndWait or
262             notInService since there are no other writable objects in
263             this table, and writable objects in rows of corresponding
264             tables such as the tunnelIfTable may be modified while this
265             row is active.
266
267             To create a row in this table for an encapsulation method
268             which does not support multiple parallel tunnels with the
269             same endpoints, the management station should simply use a
270             tunnelConfigID of 1, and set tunnelConfigStatus to
271             createAndGo.  For encapsulation methods such as L2F which
272             allow multiple parallel tunnels, the management station may
273             select a pseudo-random number to use as the tunnelConfigID
274             and set tunnelConfigStatus to createAndGo.  In the event
275             that this ID is already in use and an inconsistentValue is
276             returned in response to the set operation, the management
277             station should simply select a new pseudo-random number and
278             retry the operation.
279
280             Creating a row in this table will cause an interface index
281             to be assigned by the agent in an implementation-dependent
282             manner, and corresponding rows will be instantiated in the
283             ifTable and the tunnelIfTable.  The status of this row will
284             become active as soon as the agent assigns the interface
285             index, regardless of whether the interface is operationally
286             up.
287
288             Deleting a row in this table will likewise delete the
289             corresponding row in the ifTable and in the tunnelIfTable."
290     ::= { tunnelConfigEntry 6 }
291
292 -- conformance information
293
294 tunnelMIBConformance
295                   OBJECT IDENTIFIER ::= { tunnelMIB 2 }
296 tunnelMIBCompliances
297                   OBJECT IDENTIFIER ::= { tunnelMIBConformance 1 }
298 tunnelMIBGroups  OBJECT IDENTIFIER ::= { tunnelMIBConformance 2 }
299
300 -- compliance statements
301
302 tunnelMIBCompliance MODULE-COMPLIANCE
303     STATUS  current
304     DESCRIPTION
305             "The compliance statement for the IP Tunnel MIB."
306     MODULE  -- this module
307     MANDATORY-GROUPS { tunnelMIBBasicGroup }
308
309         OBJECT      tunnelIfHopLimit
310         MIN-ACCESS  read-only
311         DESCRIPTION
312             "Write access is not required."
313
314         OBJECT      tunnelIfTOS
315         MIN-ACCESS  read-only
316         DESCRIPTION
317             "Write access is not required."
318
319         OBJECT      tunnelConfigStatus
320         MIN-ACCESS  read-only
321         DESCRIPTION
322             "Write access is not required."
323    ::= { tunnelMIBCompliances 1 }
324
325 -- units of conformance
326
327 tunnelMIBBasicGroup OBJECT-GROUP
328     OBJECTS { tunnelIfLocalAddress, tunnelIfRemoteAddress,
329        tunnelIfEncapsMethod, tunnelIfHopLimit, tunnelIfTOS,
330        tunnelIfSecurity, tunnelConfigIfIndex, tunnelConfigStatus }
331     STATUS  current
332     DESCRIPTION
333             "A collection of objects to support basic management of IP
334             Tunnels."
335     ::= { tunnelMIBGroups 1 }
336
337 END