1HP-ICF-GPPC-MIB DEFINITIONS ::= BEGIN
2
3    IMPORTS
4        MODULE-IDENTITY, OBJECT-TYPE, Integer32
5            FROM SNMPv2-SMI
6        MODULE-COMPLIANCE, OBJECT-GROUP
7            FROM SNMPv2-CONF
8        TEXTUAL-CONVENTION, RowStatus
9            FROM SNMPv2-TC
10        SnmpAdminString
11            FROM SNMP-FRAMEWORK-MIB
12        PortList
13            FROM Q-BRIDGE-MIB
14        hpSwitch
15            FROM HP-ICF-OID;
16
17    hpicfGppcMIB MODULE-IDENTITY
18        LAST-UPDATED "200709271125Z"
19        ORGANIZATION "Hewlett Packard Company,
20                      Procurve Networking Business"
21        CONTACT-INFO "Hewlett Packard Company
22                      8000 Foothills Blvd.
23                      Roseville, CA 95747"
24        DESCRIPTION  "This MIB module is for HP proprietary
25                     General Purpose Packet Control (GPPC)"
26
27        REVISION     "200709271125Z"
28        DESCRIPTION  "Initial revision."
29
30        ::= { hpSwitch 41 }
31
32-- ***********************************************
33-- TEXTUAL Conventions
34-- ***********************************************
35    HpicfGppcPolicyName ::= TEXTUAL-CONVENTION
36        STATUS      current
37        DESCRIPTION "Type definition for the name of a policy.
38
39                    A policy name is a printable string consisting
40                    of up to 64 characters from the ASCII character
41                    set."
42        SYNTAX      OCTET STRING (SIZE(1..32))
43
44-- ***********************************************
45-- Start of MIB Objects
46-- ***********************************************
47    hpicfGppcConformance OBJECT IDENTIFIER ::= { hpicfGppcMIB 1 }
48
49-- ***********************************************
50-- GPPC application control table
51-- ***********************************************
52    hpicfGppcAppControlTable OBJECT-TYPE
53        SYNTAX      SEQUENCE OF HpicfGppcAppControlEntry
54        MAX-ACCESS  not-accessible
55        STATUS      current
56        DESCRIPTION "The application control table.  This keeps track
57                    of the applications that use GPPC, the policies
58                    set by these applications, and information on
59                    where/when/how to apply these policies.
60
61                    This information includes the interfaces and VLANs
62                    where the policy should be applied, whether it
63                    should be applied at ingress or egress, and when it
64                    should expire."
65
66        ::= { hpicfGppcMIB 2 }
67
68    hpicfGppcAppControlEntry OBJECT-TYPE
69        SYNTAX      HpicfGppcAppControlEntry
70        MAX-ACCESS  not-accessible
71        STATUS      current
72        DESCRIPTION "An entry in the application control table."
73        INDEX       { hpicfGppcAcAppName,
74                    hpicfGppcAcAppInstance,
75                    hpicfGppcAcPolicyName }
76        ::= { hpicfGppcAppControlTable 1 }
77
78    HpicfGppcAppControlEntry ::=
79        SEQUENCE {
80            hpicfGppcAcAppName          SnmpAdminString,
81            hpicfGppcAcAppInstance      SnmpAdminString,
82            hpicfGppcAcPolicyName       HpicfGppcPolicyName,
83            hpicfGppcAcIngressIfList    PortList,
84            hpicfGppcAcIngressVlanMap1k OCTET STRING,
85            hpicfGppcAcIngressVlanMap2k OCTET STRING,
86            hpicfGppcAcIngressVlanMap3k OCTET STRING,
87            hpicfGppcAcIngressVlanMap4k OCTET STRING,
88            hpicfGppcAcEgressIfList     PortList,
89            hpicfGppcAcEgressVlanMap1k  OCTET STRING,
90            hpicfGppcAcEgressVlanMap2k  OCTET STRING,
91            hpicfGppcAcEgressVlanMap3k  OCTET STRING,
92            hpicfGppcAcEgressVlanMap4k  OCTET STRING,
93            hpicfGppcAcExpPolicy        INTEGER,
94            hpicfGppcAcExpString        OCTET STRING,
95            hpicfGppcAcLastErrorCode    INTEGER,
96            hpicfGppcAcLastErrorString  OCTET STRING,
97            hpicfGppcAcRowAdminStatus   INTEGER,
98            hpicfGppcAcRowStatus        RowStatus
99        }
100
101    hpicfGppcAcAppName OBJECT-TYPE
102        SYNTAX      SnmpAdminString (SIZE(1..16))
103        MAX-ACCESS  not-accessible
104        STATUS      current
105        DESCRIPTION "Name of the application that last modified this
106                    row.  All applications of the same type should use
107                    the same name and should use different instance
108                    identifiers to identify themselves uniquely.
109
110                    This is a printable string up to 16 bytes in size."
111        ::= { hpicfGppcAppControlEntry 1 }
112
113    hpicfGppcAcAppInstance OBJECT-TYPE
114        SYNTAX      SnmpAdminString (SIZE(1..16))
115        MAX-ACCESS  not-accessible
116        STATUS      current
117        DESCRIPTION "Instance identifier of the application.  This is
118                    used to distinguish between different instances of
119                    the same application.
120
121                    This is a printable string up to 16 bytes in size."
122        ::= { hpicfGppcAppControlEntry 2 }
123
124    hpicfGppcAcPolicyName OBJECT-TYPE
125        SYNTAX      HpicfGppcPolicyName
126        MAX-ACCESS  not-accessible
127        STATUS      current
128        DESCRIPTION "Name of the policy.  Each policy is uniquely
129                    identified by its name.  It is possible to apply the
130                    same policy in different manners to different
131                    interfaces and VLANs.
132
133                    This is a printable string up to 64 characters in
134                    size."
135        ::= { hpicfGppcAppControlEntry 3 }
136
137    hpicfGppcAcIngressIfList OBJECT-TYPE
138        SYNTAX      PortList
139        MAX-ACCESS  read-create
140        STATUS      current
141        DESCRIPTION "List of interfaces to which this policy applies at
142                    ingress."
143        ::= { hpicfGppcAppControlEntry 4 }
144
145    hpicfGppcAcIngressVlanMap1k OBJECT-TYPE
146        SYNTAX      OCTET STRING (SIZE(0..128))
147        MAX-ACCESS  read-create
148        STATUS      current
149        DESCRIPTION "A string of octets containing one bit per VLAN for
150                    VLANS with vlan index values of 0 through 1023.
151                    The first octet corresponds to VLANs with
152                    vlan index values of 0 through 7, the second
153                    octet to VLANs 8 through 15, etc.  The most
154                    significant bit of each octet corresponds to the
155                    lowest vlan index value in that octet.
156
157                    For each VLAN that this policy should apply to
158                    at ingress, the corresponding bit is set to '1'."
159        ::= { hpicfGppcAppControlEntry 5 }
160
161    hpicfGppcAcIngressVlanMap2k OBJECT-TYPE
162        SYNTAX      OCTET STRING (SIZE(0..128))
163        MAX-ACCESS  read-create
164        STATUS      current
165        DESCRIPTION "A string of octets containing one bit per VLAN for
166                    VLANS with vlan index values of 1024 through 2047.
167                    The first octet corresponds to VLANs with
168                    vlan index values of 1024 through 1031, the second
169                    octet to VLANs 1032 through 1039, etc.  The most
170                    significant bit of each octet corresponds to the
171                    lowest vlan index value in that octet.
172
173                    For each VLAN that this policy should apply to
174                    at ingress, the corresponding bit is set to '1'."
175        ::= { hpicfGppcAppControlEntry 6 }
176
177    hpicfGppcAcIngressVlanMap3k OBJECT-TYPE
178        SYNTAX      OCTET STRING (SIZE(0..128))
179        MAX-ACCESS  read-create
180        STATUS      current
181        DESCRIPTION "A string of octets containing one bit per VLAN for
182                    VLANS with vlan index values of 2048 through 3071.
183                    The first octet corresponds to VLANs with
184                    vlan index values of 2048 through 2055, the second
185                    octet to VLANs 2056 through 2063, etc.  The most
186                    significant bit of each octet corresponds to the
187                    lowest vlan index value in that octet.
188
189                    For each VLAN that this policy should apply to
190                    at ingress, the corresponding bit is set to '1'."
191        ::= { hpicfGppcAppControlEntry 7 }
192
193    hpicfGppcAcIngressVlanMap4k OBJECT-TYPE
194        SYNTAX      OCTET STRING (SIZE(0..128))
195        MAX-ACCESS  read-create
196        STATUS      current
197        DESCRIPTION "A string of octets containing one bit per VLAN for
198                    VLANS with vlan index values of 3072 through 4095.
199                    The first octet corresponds to VLANs with
200                    vlan index values of 3072 through 3079, the second
201                    octet to VLANs 3080 through 3087, etc.  The most
202                    significant bit of each octet corresponds to the
203                    lowest vlan index value in that octet.
204
205                    For each VLAN that this policy should apply to
206                    at ingress, the corresponding bit is set to '1'."
207        ::= { hpicfGppcAppControlEntry 8 }
208
209    hpicfGppcAcEgressIfList OBJECT-TYPE
210        SYNTAX      PortList
211        MAX-ACCESS  read-create
212        STATUS      current
213        DESCRIPTION "List of interfaces to which this policy applies at
214                    egress."
215        ::= { hpicfGppcAppControlEntry 9 }
216
217    hpicfGppcAcEgressVlanMap1k OBJECT-TYPE
218        SYNTAX      OCTET STRING (SIZE(0..128))
219        MAX-ACCESS  read-create
220        STATUS      current
221        DESCRIPTION "A string of octets containing one bit per VLAN for
222                    VLANS with vlan index values of 0 through 1023.
223                    The first octet corresponds to VLANs with
224                    vlan index values of 0 through 7, the second
225                    octet to VLANs 8 through 15, etc.  The most
226                    significant bit of each octet corresponds to the
227                    lowest vlan index value in that octet.
228
229                    For each VLAN that this policy should apply to
230                    at egress, the corresponding bit is set to '1'."
231        ::= { hpicfGppcAppControlEntry 10 }
232
233    hpicfGppcAcEgressVlanMap2k OBJECT-TYPE
234        SYNTAX      OCTET STRING (SIZE(0..128))
235        MAX-ACCESS  read-create
236        STATUS      current
237        DESCRIPTION "A string of octets containing one bit per VLAN for
238                    VLANS with vlan index values of 1024 through 2047.
239                    The first octet corresponds to VLANs with
240                    vlan index values of 1024 through 1031, the second
241                    octet to VLANs 1032 through 1039, etc.  The most
242                    significant bit of each octet corresponds to the
243                    lowest vlan index value in that octet.
244
245                    For each VLAN that this policy should apply to
246                    at egress, the corresponding bit is set to '1'."
247        ::= { hpicfGppcAppControlEntry 11 }
248
249    hpicfGppcAcEgressVlanMap3k OBJECT-TYPE
250        SYNTAX      OCTET STRING (SIZE(0..128))
251        MAX-ACCESS  read-create
252        STATUS      current
253        DESCRIPTION "A string of octets containing one bit per VLAN for
254                    VLANS with vlan index values of 2048 through 3071.
255                    The first octet corresponds to VLANs with
256                    vlan index values of 2048 through 2055, the second
257                    octet to VLANs 2056 through 2063, etc.  The most
258                    significant bit of each octet corresponds to the
259                    lowest vlan index value in that octet.
260
261                    For each VLAN that this policy should apply to
262                    at egress, the corresponding bit is set to '1'."
263        ::= { hpicfGppcAppControlEntry 12 }
264
265    hpicfGppcAcEgressVlanMap4k OBJECT-TYPE
266        SYNTAX      OCTET STRING (SIZE(0..128))
267        MAX-ACCESS  read-create
268        STATUS      current
269        DESCRIPTION "A string of octets containing one bit per VLAN for
270                    VLANS with vlan index values of 3072 through 4095.
271                    The first octet corresponds to VLANs with
272                    vlan index values of 3072 through 3079, the second
273                    octet to VLANs 3080 through 3087, etc.  The most
274                    significant bit of each octet corresponds to the
275                    lowest vlan index value in that octet.
276
277                    For each VLAN that this policy should apply to
278                    at egress, the corresponding bit is set to '1'."
279        ::= { hpicfGppcAppControlEntry 13 }
280
281    hpicfGppcAcExpPolicy OBJECT-TYPE
282        SYNTAX      INTEGER { permanent(1) }
283        MAX-ACCESS  read-create
284        STATUS      current
285        DESCRIPTION "Expiration policy.  This indicates whether a policy
286                    should expire automatically.
287
288                    'permanent' means a policy should never expire
289                    automatically."
290        ::= { hpicfGppcAppControlEntry 14 }
291
292    hpicfGppcAcExpString OBJECT-TYPE
293        SYNTAX      OCTET STRING (SIZE(0..24))
294        MAX-ACCESS  read-create
295        STATUS      current
296        DESCRIPTION "Expiration string.  This is used in conjuntion with
297                    hpicfGppcAcExpPolicy to indicate when a policy
298                    should expire automatically.
299
300                    The value stored in this object is interpreted
301                    differently for different expiration policies.  When
302                    the expiration policy is 'permanent', this value is
303                    ignored."
304        ::= { hpicfGppcAppControlEntry 15 }
305
306    hpicfGppcAcLastErrorCode OBJECT-TYPE
307        SYNTAX      INTEGER {
308                        no-error(0),
309                        gppc-generic-error(1),
310                        gppc-length-error(2),
311                        gppc-name-error(3),
312                        gppc-parameter-error(4),
313                        gppc-not-implemented(5),
314                        gppc-malloc-error(6),
315                        gppc-too-many-apps(7),
316                        gppc-too-many-policies(8),
317                        gppc-already-reserved(9),
318                        gppc-entry-not-found(10),
319                        gppc-entry-exists(11),
320                        gppc-platform-error(12),
321                        gppc-app-using-policy(13),
322                        gppc-invalid-policy-type(14),
323                        gppc-not-reserved(15),
324                        gppc-no-policy(16),
325                        gppc-policy-not-active(17),
326                        gppc-policy-has-rules(18),
327                        gppc-rule-exists(19),
328                        gppc-mac-mirror-mac-exists(30),
329                        gppc-mac-mirror-dir-both-conflict(31),
330                        gppc-mac-mirror-dir-src-conflict(32),
331                        gppc-mac-mirror-dir-dst-conflict(33),
332                        gppc-mac-mirror-invalid-session(34),
333                        gppc-mac-mirror-invalid-direction(35),
334                        gppc-mac-mirror-no-entry(36),
335                        gppc-mac-mirror-convert-error(37),
336                        gppc-mac-mirror-table-full(38),
337                        gppc-cfg-generic-error(50),
338                        gppc-cfg-entry-not-found(51),
339                        gppc-cfg-set-error(52),
340                        gppc-cfg-get-error(53),
341                        gppc-cfg-no-record(54),
342                        gppc-cfg-add-record-error(55),
343                        gppc-cfg-invalid(56),
344                        gppc-cfg-malloc-error(57)
345                    }
346        MAX-ACCESS  read-only
347        STATUS      current
348        DESCRIPTION "Error code of the last error that occurred.  A
349                    non-zero value indicates that the last operation
350                    performed by this instance of the application on the
351                    named policy did not succeed.  A detailed
352                    description of the error is available in
353                    hpicfGppcAcLastErrorString."
354        ::= { hpicfGppcAppControlEntry 16 }
355
356    hpicfGppcAcLastErrorString OBJECT-TYPE
357        SYNTAX      OCTET STRING (SIZE(0..255))
358        MAX-ACCESS  read-only
359        STATUS      current
360        DESCRIPTION "Description of the last error that occurred.  This
361                    is a printable ASCII string that describes the error
362                    in some detail."
363        ::= { hpicfGppcAppControlEntry 17 }
364
365    hpicfGppcAcRowAdminStatus OBJECT-TYPE
366        SYNTAX      INTEGER {
367                        disabled(1),
368                        enabled(2)
369                    }
370        MAX-ACCESS  read-create
371        STATUS      current
372        DESCRIPTION "Administrative status of this row.  The named policy
373                    in this row is applied to the interfaces and/or
374                    VLANs by this instance of the application only when
375                    the administrative status is enabled.  This is the
376                    main on/off switch for the row.  The row status must
377                    be active for this switch to have an effect."
378        ::= { hpicfGppcAppControlEntry 18 }
379
380    hpicfGppcAcRowStatus OBJECT-TYPE
381        SYNTAX      RowStatus
382        MAX-ACCESS  read-create
383        STATUS      current
384        DESCRIPTION "Status of this row.  Row status must be active, and
385                    the admin status (see hpicfGppcAcRowAdminStatus)
386                    must be enabled for this row to be activated."
387        ::= { hpicfGppcAppControlEntry 19 }
388
389-- ***********************************************
390-- GPPC named policy table
391-- ***********************************************
392    hpicfGppcNamedPolicyTable OBJECT-TYPE
393        SYNTAX      SEQUENCE OF HpicfGppcNamedPolicyEntry
394        MAX-ACCESS  not-accessible
395        STATUS      current
396        DESCRIPTION "The named policy table.  This table lists the name
397                    and type of all policies that are applied via GPPC."
398        ::= { hpicfGppcMIB 3 }
399
400    hpicfGppcNamedPolicyEntry OBJECT-TYPE
401        SYNTAX      HpicfGppcNamedPolicyEntry
402        MAX-ACCESS  not-accessible
403        STATUS      current
404        DESCRIPTION "An entry in the named policy table."
405        INDEX       { hpicfGppcNpPolicyName }
406        ::= { hpicfGppcNamedPolicyTable 1 }
407
408    HpicfGppcNamedPolicyEntry ::=
409        SEQUENCE {
410            hpicfGppcNpPolicyName       HpicfGppcPolicyName,
411            hpicfGppcNpPolicyType       INTEGER,
412            hpicfGppcNpRowStatus        RowStatus
413        }
414
415    hpicfGppcNpPolicyName OBJECT-TYPE
416        SYNTAX      HpicfGppcPolicyName
417        MAX-ACCESS  not-accessible
418        STATUS      current
419        DESCRIPTION "Name of the policy.  The name of a policy is its
420                    unique identification.  It is a printable string
421                    in ASCII characters.  It can be up to 64 characters
422                    in length"
423        ::= { hpicfGppcNamedPolicyEntry 1 }
424
425    hpicfGppcNpPolicyType OBJECT-TYPE
426        SYNTAX      INTEGER { mac-based-mirroring(1) }
427        MAX-ACCESS  read-create
428        STATUS      current
429        DESCRIPTION "Type of the policy.  A policy type of
430                    'mac-based-mirroring' indicates that the policy is
431                    used to mirror traffic based on the MAC address of
432                    the source or destination."
433        ::= { hpicfGppcNamedPolicyEntry 2 }
434
435    hpicfGppcNpRowStatus OBJECT-TYPE
436        SYNTAX      RowStatus
437        MAX-ACCESS  read-create
438        STATUS      current
439        DESCRIPTION "Status of this row.  The named policy must be
440                    active before rules can be added to it or removed
441                    from it.  A newly created policy will remain in
442                    notReady state until it is given a valid policy type
443                    (see hpicfGppcNpPolicyType).
444
445                    A row in the named policy table can not be deleted
446                    if the named policy is referenced by a row in the
447                    application control table.  The application
448                    control entries that refer to this row must be
449                    deleted before this row can be deleted."
450        ::= { hpicfGppcNamedPolicyEntry 3 }
451
452-- ***********************************************
453-- GPPC policy rules table
454-- ***********************************************
455    hpicfGppcPolicyRulesTable OBJECT-TYPE
456        SYNTAX      SEQUENCE OF HpicfGppcPolicyRulesEntry
457        MAX-ACCESS  not-accessible
458        STATUS      current
459        DESCRIPTION "The policy rules table.  A policy can consist of
460                    multiple rules.  All of the rules of a policy are
461                    listed in this table.  Each rule consists of a
462                    string and a numeric identifier - the rule id."
463        ::= { hpicfGppcMIB 4 }
464
465    hpicfGppcPolicyRulesEntry OBJECT-TYPE
466        SYNTAX      HpicfGppcPolicyRulesEntry
467        MAX-ACCESS  not-accessible
468        STATUS      current
469        DESCRIPTION "An entry in the policy rules table."
470        INDEX       { hpicfGppcNpPolicyName,
471                    hpicfGppcPrRuleId }
472        ::= { hpicfGppcPolicyRulesTable 1 }
473
474    HpicfGppcPolicyRulesEntry ::=
475        SEQUENCE {
476            hpicfGppcPrRuleId     Integer32,
477            hpicfGppcPrPolicyRule OCTET STRING,
478            hpicfGppcPrRowStatus  RowStatus
479        }
480
481    hpicfGppcPrRuleId OBJECT-TYPE
482        SYNTAX      Integer32
483        MAX-ACCESS  not-accessible
484        STATUS      current
485        DESCRIPTION "Numeric identifier of the rule.  The rules in a
486                    policy are processed sequentially in increasing
487                    order of their rule ids.  These numeric ids are
488                    generated by the application that creates the
489                    policy.  Rules within a policy have unique rule
490                    ids."
491        ::= { hpicfGppcPolicyRulesEntry 1 }
492
493    hpicfGppcPrPolicyRule OBJECT-TYPE
494        SYNTAX      OCTET STRING (SIZE(0..128))
495        MAX-ACCESS  read-create
496        STATUS      current
497        DESCRIPTION "Rule string.  This is a string that represents one
498                    rule in the policy.  A policy can consist of one or
499                    many rules."
500        ::= { hpicfGppcPolicyRulesEntry 2 }
501
502    hpicfGppcPrRowStatus OBJECT-TYPE
503        SYNTAX      RowStatus
504        MAX-ACCESS  read-create
505        STATUS      current
506        DESCRIPTION "Status of this row.  A rule must have an active row
507                    status in order to take effect.  Only active rules
508                    within the named policy are applied when an
509                    application applies the policy.  It is possible to
510                    use this row status as an on/off switch for enabling
511                    or disabling selected rules within a policy.
512
513                    A newly created rule will remain in notReady state
514                    until it is given a valid rule string (see
515                    hpicfGppcPrPolicyRule)."
516        ::= { hpicfGppcPolicyRulesEntry 3 }
517
518-- **********************************************************************
519-- Conformance Information
520-- **********************************************************************
521
522    hpicfGppcMIBCompliances  OBJECT IDENTIFIER ::= { hpicfGppcConformance 1 }
523    hpicfGppcMIBGroups       OBJECT IDENTIFIER ::= { hpicfGppcConformance 2 }
524
525    hpicfGppcMIBCompliance MODULE-COMPLIANCE
526        STATUS      current
527        DESCRIPTION "The compliance statement for HP routers
528                    implementing the HP-ICF-GPPC-MIB."
529        MODULE
530            MANDATORY-GROUPS { hpicfGppcGroup }
531            GROUP       hpicfGppcGroup
532            DESCRIPTION "Support for this group is required for HP routers
533                        that implement GPPC."
534        ::= { hpicfGppcMIBCompliances 1 }
535
536    hpicfGppcGroup OBJECT-GROUP
537        OBJECTS     {
538            hpicfGppcAcIngressIfList,
539            hpicfGppcAcIngressVlanMap1k,
540            hpicfGppcAcIngressVlanMap2k,
541            hpicfGppcAcIngressVlanMap3k,
542            hpicfGppcAcIngressVlanMap4k,
543            hpicfGppcAcEgressIfList,
544            hpicfGppcAcEgressVlanMap1k,
545            hpicfGppcAcEgressVlanMap2k,
546            hpicfGppcAcEgressVlanMap3k,
547            hpicfGppcAcEgressVlanMap4k,
548            hpicfGppcAcExpPolicy,
549            hpicfGppcAcExpString,
550            hpicfGppcAcLastErrorCode,
551            hpicfGppcAcLastErrorString,
552            hpicfGppcAcRowAdminStatus,
553            hpicfGppcAcRowStatus,
554            hpicfGppcNpPolicyType,
555            hpicfGppcNpRowStatus,
556            hpicfGppcPrPolicyRule,
557            hpicfGppcPrRowStatus
558        }
559        STATUS      current
560        DESCRIPTION "A collection of HP proprietary objects to support
561                    GPPC."
562        ::= { hpicfGppcMIBGroups 1 }
563END
564