Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / pibs / tubs / LOAD-BALANCING-PIB-orig
1 LOAD-BALANCING-PIB PIB-DEFINITIONS ::= BEGIN 
2
3 IMPORTS 
4    MODULE-IDENTITY, OBJECT-TYPE,  
5    TEXTUAL-CONVENTION, MODULE-COMPLIANCE,  
6    OBJECT-IDENTITY, OBJECT-GROUP 
7       FROM COPS-PR-SPPI 
8    TruthValue 
9          FROM SNMPv2-TC 
10    InstanceId, ReferenceId,  
11    TagId, TagReference 
12          FROM COPS-PR-SPPI-TC 
13    SnmpAdminString 
14          FROM SNMP-FRAMEWORK-MIB 
15    InetAddress, InetAddressType 
16          FROM INET-ADDRESS-MIB 
17
18 lbPolicyPib MODULE-IDENTITY 
19    SUBJECT-CATEGORIES SUBJECT-CATEGORY { tbd û Load Balancing Client 
20 Type } 
21    LAST-UPDATED "200102231000Z" 
22    ORGANIZATION " WG" 
23    CONTACT-INFO ö 
24                 Harsha Hegde 
25                 Intel Corporation 
26                 MS JF3-206 
27                 2111 NE 25th Ave. 
28                 Hillsboro, OR 97124 
29                 Phone: +1 503 264 1439 
30                 Fax: +1 503 264 3483 
31                 E-Mail: shriharsha.hegde@intel.com 
32
33                 Brad Stone 
34                 Resonate, Inc. 
35                 385 Moffett Park Drive 
36                 Sunnyvale, CA 94089 
37                 Phone: +1 408 548 5929 
38                 Fax: +1 408 nnn nnnn 
39                 Email: bstone@resonate.com 
40                 ô 
41    DESCRIPTION 
42          "This PIB module contains a set of provisioning classes 
43          that describe load balancing policies." 
44    ::= { tbd } 
45
46
47 -- 
48 -- Classifier Classes 
49 -- 
50
51 lbClassifierClasses  OBJECT IDENTIFIER ::= { lbPolicyPib 1 } 
52
53 -- 
54 -- Filter Table 
55 -- 
56
57 lbFilterTable OBJECT-TYPE 
58     SYNTAX         SEQUENCE OF LbFilterEntry 
59     PIB-ACCESS     install 
60     STATUS         current 
61     DESCRIPTION 
62         "This table consists of additional filters. The filters in 
63         this table extend the filters in frwkBaseFilterTable. A 
64         packet must match all the fields in a filter. Wildcards may 
65         be specified for those fields that are not relevant." 
66
67     ::= { lbClassifierClasses  1 } 
68
69 lbFilterEntry OBJECT-TYPE 
70     SYNTAX         LbFilterEntry 
71     STATUS         current 
72     DESCRIPTION 
73         "An instance of this class describes a filter. " 
74
75     EXTENDS        { frwkIpFilterEntry } 
76
77     ::= { lbFilterTable 1 } 
78
79 LbFilterEntry ::= SEQUENCE { 
80         lbFilterUrlPrefix      OCTET_STRING, 
81         lbFilterUrlDomain      OCTET_STRING, 
82         lbFilterUrlSuffix      OCTET_STRING } 
83
84 lbFilterUrlPrefix OBJECT-TYPE 
85     SYNTAX         OCTET STRING 
86     STATUS         current 
87     DESCRIPTION 
88         "The portion of an URL that identifies the protocol. for 
89         example, http,ftp. A æ*Æ character is used to match any 
90         string." 
91
92     ::= { lbFilterEntry 1 } 
93
94 lbFilterUrDomain OBJECT-TYPE 
95     SYNTAX         OCTET STRING 
96     STATUS         current 
97     DESCRIPTION 
98         "The portion of an URL that identifies the domain. for 
99         example, www.company.com. A æ*Æ character is used to match 
100         any string." 
101
102     ::= { lbFilterEntry 2 } 
103
104 lbFilterUrlSuffix OBJECT-TYPE 
105     SYNTAX         OCTET STRING 
106     STATUS         current 
107     DESCRIPTION 
108         "The portion of an URL that identifies the file name. for 
109         example, index.html, mypic.jpg. A æ*.*Æ string matches any 
110         file, a æ*.jpgÆ string matches all files with jpg extension, 
111         and a æindex.*Æ matches all æindexÆ files with any  
112         extension." 
113
114     ::= { lbFilterEntry 3 } 
115
116 -- 
117 -- Filter Group Table 
118 -- 
119
120 lbFilterGroupTable OBJECT-TYPE 
121     SYNTAX         SEQUENCE OF LbFilterGroupEntry 
122     PIB-ACCESS     install 
123     STATUS         current 
124     DESCRIPTION 
125         "A class that defines Filter Groups. Each Group being an 
126         ordered list of filters.  Each instance of this class 
127         identifies one filter of a group and the precedence order of 
128         that filter with respect to other filters in the same 
129         group." 
130
131     ::= { lbClassifierClasses  2 } 
132
133 lbFilterGroupEntry OBJECT-TYPE 
134     SYNTAX         LbFilterGroupEntry 
135     STATUS         current 
136     DESCRIPTION 
137         "An instance of filter group." 
138
139     PIB-INDEX { lbFilterGroupPrid } 
140
141     ::= { lbFilterGroupTable 1 } 
142
143 LbFilterGroupEntry ::= SEQUENCE { 
144         lbFilterGroupPrid           InstanceId, 
145         lbFilterGroupId             TagId, 
146         lbFilterGroupFilterId       ReferenceId, 
147         lbFilterGroupPriority       Unsigned32 } 
148
149 lbFilterGroupPrid OBJECT-TYPE 
150     SYNTAX         InstanceId 
151     STATUS         current 
152     DESCRIPTION 
153         "An integer index that uniquely identifies an instance of 
154         the lbFilterGroupEntry class." 
155
156     ::= { lbFilterGroupEntry 1 } 
157
158 lbFilterGroupId OBJECT-TYPE 
159     SYNTAX         TagId 
160     STATUS         current 
161     DESCRIPTION 
162         "An arbitrary integer that identifies the group of filters. 
163         The same lbFilterGroupId is used in all lbFilterGroupEntry 
164         instances that belong to a group." 
165
166     ::= { lbFilterGroupEntry 2 } 
167
168 lbFilterGroupFilterId OBJECT-TYPE 
169     SYNTAX         ReferenceId 
170     PIB-REFERENCES { lbFilterEntry }  
171     STATUS         current 
172     DESCRIPTION 
173         "Pointer to an instance of filter. The filter with the same 
174         Id must be present." 
175
176     ::= { lbFilterGroupEntry 3 } 
177
178 lbFilterGroupPriority OBJECT-TYPE 
179     SYNTAX         Unsigned32 
180     STATUS         current 
181     DESCRIPTION 
182         "An arbitrary integer index that specifies the position of 
183         this filter in the filter group. A filter with a given  
184         priority order is positioned in the filter group before one 
185         with a higher-value priority. Priority values within a group 
186         must be unique." 
187
188     ::= { lbFilterGroupEntry 4 } 
189
190
191 -- 
192 -- Capabilities Classes 
193 -- 
194
195 lbCapabilitiesClasses  OBJECT IDENTIFIER ::= { lbPolicyPib 2 } 
196
197 -- 
198 -- Capabilities Table 
199 -- 
200
201 lbCapabilitiesTable OBJECT-TYPE 
202     SYNTAX         SEQUENCE OF LbCapabilitiesEntry 
203     PIB-ACCESS     install-notify 
204     STATUS         current 
205     DESCRIPTION 
206         "This table consists of load balancer capabilities. 
207         Instances of this class are used by the PEP to notify PEP 
208         capabilities and by the PDP to install policies. The PDP 
209         must not install a capability not reported by the PEP " 
210
211     ::= { lbCapabilitiesClasses 1 } 
212
213 lbCapabilitiesEntry OBJECT-TYPE 
214     SYNTAX         LbCapabilitiesEntry 
215     STATUS         current 
216     DESCRIPTION 
217         "An instance of this class describes a set of capabilities 
218         of the load balancer or the capabilities applied to a 
219         service policy." 
220
221     ::= { lbCapabilitiesTable 1 } 
222
223 LbCapabilitiesEntry ::= SEQUENCE { 
224         lbCapPrid              InstanceId, 
225         lbCapStickyMode        BITS, 
226         lbCapHttpReturnCodes   BITS, 
227         lbCapBalanceAlgorithm  BITS, 
228         lbCapAlgorithmParams   Prid, 
229         lbCapPreserveSrcAddr   TruthValue, 
230         lbCapDirectReturn      TruthValue } 
231
232 lbCapPrid OBJECT-TYPE 
233     SYNTAX         InstanceId 
234     STATUS         current 
235     DESCRIPTION 
236         "An integer index that uniquely identifies an instance of 
237         the lbCapabilitiesEntry class." 
238
239     ::= { lbCapabilitiesEntry 1 } 
240
241 lbCapStickyMode OBJECT-TYPE 
242     SYNTAX         BITS { 
243                        cookieBased (1), 
244                        sourceAddressBased (2) } 
245     STATUS         current 
246     DESCRIPTION 
247         "Set of values indicating the type of Sticky Mode in this 
248         capabilities set. When PEP notifies PDP, the bits indicate 
249         the support of these mechanisms. When PDP installs policies,  
250         the bits indicate what mechanism must be used." 
251
252     ::= { lbCapabilitiesEntry 2 } 
253
254 lbCapReturnCodes OBJECT-TYPE 
255     SYNTAX         BITS { 
256                        http404(1), 
257                        http505(2) } 
258     STATUS         current 
259     DESCRIPTION 
260         "Set of values indicating the type of HTTP return codes that 
261         the load balancer can interpret and redirect the request to 
262         another server. When PEP notifies PDP, the bits indicate 
263         the ability to interpret the HTTP return codes. When PDP 
264         installs policies, the bits indicate enabling redirection on 
265         any of those HTTP return codes." 
266
267     ::= { lbCapabilitiesEntry 3 } 
268
269 lbCapBalanceAlgorithm OBJECT-TYPE 
270     SYNTAX         BITS { 
271                        roundRobin(1), 
272                        weightedRoundRobin(2), 
273                        leastConnections(3), 
274                        weightedLeastConnections(4), 
275                        fastestServerResponse(5), 
276                        serverCpuUtilizaiton(6), 
277                        priorityToUser(7) } 
278     STATUS         current 
279     DESCRIPTION 
280         "Set of values indicating the type of server balance 
281         algorithm. When PEP notifies PDP, the bits indicate all the 
282         algorithms supported. When PDP installs policies the bits  
283         indicate only one algorithm that must be used. Additional  
284         parameters needed for the algorithm may be specified in  
285         another PRC instance identified by the lbCapAlgorithmParams  
286         attribute." 
287
288     ::= { lbCapabilitiesEntry 4 } 
289
290 lbCapAlgorithmParams OBJECT-TYPE 
291     SYNTAX         Prid 
292     STATUS         current 
293     DESCRIPTION 
294         "This points to PRI that contains parameters needed for a  
295         specific algorithm. The PRI pointed to must exist prior to  
296         the installation of this class.  
297
298         TBD: define parameters classes for all existing algorithms.ö 
299
300     ::= { lbCapabilitiesEntry 5 } 
301
302 lbCapPreserveSrcAddr OBJECT-TYPE 
303     SYNTAX         TruthValue 
304     STATUS         current 
305     DESCRIPTION 
306         "Indicates whether Source Address must be preserved when 
307         forwarding a request to server.ö 
308
309     ::= { lbCapabilitiesEntry 6 } 
310
311 lbCapDirectReturn OBJECT-TYPE 
312     SYNTAX         TruthValue 
313     STATUS         current 
314     DESCRIPTION 
315         "Indicates whether a response from data center server could 
316         go directly to client bypassing the load balancer.ö 
317
318     ::= { lbCapabilitiesEntry 7 } 
319
320
321 -- 
322 -- Server Classes 
323 -- 
324
325 lbServerClasses  OBJECT IDENTIFIER ::= { lbPolicyPib 3 } 
326
327 -- 
328 -- Server Table 
329 -- 
330
331 lbServerTable OBJECT-TYPE 
332     SYNTAX         SEQUENCE OF LbServerEntry 
333     PIB-ACCESS     install 
334     STATUS         current 
335     DESCRIPTION 
336         "This table consists of data center servers." 
337
338     ::= { lbCapabilitiesClasses 1 } 
339
340 lbServerEntry OBJECT-TYPE 
341     SYNTAX         LbServerEntry 
342     STATUS         current 
343     DESCRIPTION 
344         "An instance of this class describes a data center server." 
345
346     PIB-INDEX { lbServerPrid } 
347
348     ::= { lbServerTable 1 } 
349
350 LbServerEntry ::= SEQUENCE { 
351         lbServerPrid           InstanceId, 
352         lbServerName           SnmpAdminString, 
353         lbServerAddressType    InetAddressType, 
354         lbServerAddress        InetAddress, 
355         lbServerMode           INTEGER } 
356
357 lbServerPrid OBJECT-TYPE 
358     SYNTAX         InstanceId 
359     STATUS         current 
360     DESCRIPTION 
361         "An integer index that uniquely identifies an instance of 
362         the lbServerEntry class." 
363
364     ::= { lbServerEntry 1 } 
365
366 lbServerName OBJECT-TYPE 
367     SYNTAX         SnmpAdminString 
368     STATUS         current 
369     DESCRIPTION 
370         "A name for server." 
371
372     ::= { lbServerEntry 2 } 
373
374 lbServerAddressType OBJECT-TYPE 
375     SYNTAX         InetAddressType 
376     STATUS         current 
377     DESCRIPTION 
378         "Type of address for server." 
379
380     ::= { lbServerEntry 3 } 
381
382 lbServerAddress OBJECT-TYPE 
383     SYNTAX         InetAddress 
384     STATUS         current 
385     DESCRIPTION 
386         "Address (IP address or DNS Name) for server." 
387
388     ::= { lbServerEntry 4 } 
389
390 lbServerMode OBJECT-TYPE 
391     SYNTAX         INTEGER { 
392                        Disabled(0), 
393                        Primary(1), 
394                        Backup(2) } 
395     STATUS         current 
396     DESCRIPTION 
397         "Indicates the mode of the server. Enumeration values are 
398              primary server  (1) 
399              backup server   (2)  
400              disabled        (0)." 
401
402     ::= { lbServerEntry 5 } 
403
404 -- 
405 -- Server Group Table 
406 -- 
407
408 lbServerGroupTable OBJECT-TYPE 
409     SYNTAX         SEQUENCE OF LbServerGroupEntry 
410     PIB-ACCESS     install 
411     STATUS         current 
412     DESCRIPTION 
413         "A class that defines Server Groups. Each Group being an 
414         ordered list of data center servers.  Each instance of this 
415         class identifies one server of a group and the precedence 
416         order of that server with respect to other servers in the 
417         same group." 
418
419     ::= { lbServerClasses  2 } 
420
421 lbServerGroupEntry OBJECT-TYPE 
422     SYNTAX         LbServerGroupEntry 
423     STATUS         current 
424     DESCRIPTION 
425         "An instance of server group." 
426
427     PIB-INDEX { lbServerGroupPrid } 
428
429     ::= { lbServerGroupTable 1 } 
430
431 LbServerGroupEntry ::= SEQUENCE { 
432         lbServerGroupPrid           InstanceId, 
433         lbServerGroupId             TagId, 
434         lbServerGroupServerId       ReferenceId, 
435         lbServerGroupPriority       Unsigned32 } 
436
437 lbServerGroupPrid OBJECT-TYPE 
438     SYNTAX         InstanceId 
439     STATUS         current 
440     DESCRIPTION 
441         "An integer index that uniquely identifies an instance of 
442         the lbServerGroupEntry class." 
443
444     ::= { lbServerGroupEntry 1 } 
445
446 lbServerGroupId OBJECT-TYPE 
447     SYNTAX         TagId 
448     STATUS         current 
449     DESCRIPTION 
450         "An arbitrary integer that identifies the group of servers. 
451         The same lbServerGroupId is used in all lbServerGroupEntry 
452         instances that belong to a group." 
453
454     ::= { lbServerGroupEntry 2 } 
455
456 lbServerGroupServerId OBJECT-TYPE 
457     SYNTAX         ReferenceId 
458     PIB-REFERENCES { lbServerEntry } 
459     STATUS         current 
460     DESCRIPTION 
461         "Pointer to an instance of server. The server with the same 
462         Id must be present." 
463
464     ::= { lbServerGroupEntry 3 } 
465
466 lbServerGroupPriority OBJECT-TYPE 
467     SYNTAX         Unsigned32 
468     STATUS         current 
469     DESCRIPTION 
470         "An arbitrary integer index that specifies the position of 
471         this server in the server group. A server with a given  
472         priority order is positioned in the server group before one 
473         with a higher-value priority. Priority values within a group 
474         must be unique." 
475
476     ::= { lbServerGroupEntry 4 } 
477
478
479 -- 
480 -- Service Classes 
481 -- 
482
483 lbServiceClasses  OBJECT IDENTIFIER ::= { lbPolicyPib 4 } 
484
485 -- 
486 -- Service Table 
487 -- 
488
489 lbServiceTable OBJECT-TYPE 
490     SYNTAX         SEQUENCE OF LbServiceEntry 
491     PIB-ACCESS     install 
492     STATUS         current 
493     DESCRIPTION 
494         "This table consists of entries that combine filter groups, 
495         capabilities and server groups to form services." 
496
497     ::= { lbServiceClasses 1 } 
498
499 lbServiceEntry OBJECT-TYPE 
500     SYNTAX         LbServiceEntry 
501     STATUS         current 
502     DESCRIPTION 
503         "An instance of this class describes a service." 
504
505     PIB-INDEX { lbServicePrid } 
506
507     ::= { lbServiceTable 1 } 
508
509 LbServiceEntry ::= SEQUENCE { 
510         lbServicePrid           InstanceId, 
511         lbServiceName           SnmpAdminString, 
512         lbServiceFilterGroupId  TagReference, 
513         lbServiceServerGroupId  TagReference, 
514         lbServiceCapabilitiesId ReferenceId } 
515
516 lbServicePrid OBJECT-TYPE 
517     SYNTAX         InstanceId 
518     STATUS         current 
519     DESCRIPTION 
520         "An integer index that uniquely identifies an instance of 
521         the lbServiceEntry class." 
522
523     ::= { lbServiceEntry 1 } 
524
525 lbServiceName OBJECT-TYPE 
526     SYNTAX         SnmpAdminString 
527     STATUS         current 
528     DESCRIPTION 
529         "Name to identify a service." 
530
531     ::= { lbServiceEntry 2 } 
532
533 lbServiceFilterGroupId OBJECT-TYPE 
534     SYNTAX         TagReference 
535     PIB-TAG        { lbFilterGroupId } 
536     STATUS         current 
537     DESCRIPTION 
538         "Pointer to a group of Filters. An instance of 
539         lbFilterGroupEntry with the same tag id must be present." 
540
541     ::= { lbServiceEntry 3 } 
542
543 lbServiceServerGroupId OBJECT-TYPE 
544     SYNTAX         TagReference 
545     PIB-TAG        { lbServerGroupId } 
546     STATUS         current 
547     DESCRIPTION 
548         "Pointer to a group of Servers. An instance of 
549         lbServerGroupEntry with the same tag id must be present." 
550
551     ::= { lbServiceEntry 4 } 
552
553 lbServiceCapabilitiesId OBJECT-TYPE 
554     SYNTAX         ReferenceId 
555     PIB-REFERENCES { lbCapabilitiesEntry } 
556     STATUS         current 
557     DESCRIPTION 
558         "Pointer to an instance of capabilities class. An instance 
559         of lbCapabilitiesEntry with the same tag id must be 
560         present." 
561
562     ::= { lbServiceEntry 5 } 
563
564
565
566 -- Compliance section 
567 -- TBD 
568 END