1 LOAD-BALANCING-PIB PIB-DEFINITIONS ::= BEGIN
4 MODULE-IDENTITY, OBJECT-TYPE,
5 TEXTUAL-CONVENTION, MODULE-COMPLIANCE,
6 OBJECT-IDENTITY, OBJECT-GROUP
10 InstanceId, ReferenceId,
14 FROM SNMP-FRAMEWORK-MIB
15 InetAddress, InetAddressType
18 lbPolicyPib MODULE-IDENTITY
19 SUBJECT-CATEGORIES SUBJECT-CATEGORY { tbd û Load Balancing Client
21 LAST-UPDATED "200102231000Z"
29 Phone: +1 503 264 1439
31 E-Mail: shriharsha.hegde@intel.com
35 385 Moffett Park Drive
37 Phone: +1 408 548 5929
39 Email: bstone@resonate.com
42 "This PIB module contains a set of provisioning classes
43 that describe load balancing policies."
51 lbClassifierClasses OBJECT IDENTIFIER ::= { lbPolicyPib 1 }
57 lbFilterTable OBJECT-TYPE
58 SYNTAX SEQUENCE OF LbFilterEntry
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."
67 ::= { lbClassifierClasses 1 }
69 lbFilterEntry OBJECT-TYPE
73 "An instance of this class describes a filter. "
75 EXTENDS { frwkIpFilterEntry }
77 ::= { lbFilterTable 1 }
79 LbFilterEntry ::= SEQUENCE {
80 lbFilterUrlPrefix OCTET_STRING,
81 lbFilterUrlDomain OCTET_STRING,
82 lbFilterUrlSuffix OCTET_STRING }
84 lbFilterUrlPrefix OBJECT-TYPE
88 "The portion of an URL that identifies the protocol. for
89 example, http,ftp. A æ*Æ character is used to match any
92 ::= { lbFilterEntry 1 }
94 lbFilterUrDomain OBJECT-TYPE
98 "The portion of an URL that identifies the domain. for
99 example, www.company.com. A æ*Æ character is used to match
102 ::= { lbFilterEntry 2 }
104 lbFilterUrlSuffix OBJECT-TYPE
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
114 ::= { lbFilterEntry 3 }
117 -- Filter Group Table
120 lbFilterGroupTable OBJECT-TYPE
121 SYNTAX SEQUENCE OF LbFilterGroupEntry
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
131 ::= { lbClassifierClasses 2 }
133 lbFilterGroupEntry OBJECT-TYPE
134 SYNTAX LbFilterGroupEntry
137 "An instance of filter group."
139 PIB-INDEX { lbFilterGroupPrid }
141 ::= { lbFilterGroupTable 1 }
143 LbFilterGroupEntry ::= SEQUENCE {
144 lbFilterGroupPrid InstanceId,
145 lbFilterGroupId TagId,
146 lbFilterGroupFilterId ReferenceId,
147 lbFilterGroupPriority Unsigned32 }
149 lbFilterGroupPrid OBJECT-TYPE
153 "An integer index that uniquely identifies an instance of
154 the lbFilterGroupEntry class."
156 ::= { lbFilterGroupEntry 1 }
158 lbFilterGroupId OBJECT-TYPE
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."
166 ::= { lbFilterGroupEntry 2 }
168 lbFilterGroupFilterId OBJECT-TYPE
170 PIB-REFERENCES { lbFilterEntry }
173 "Pointer to an instance of filter. The filter with the same
176 ::= { lbFilterGroupEntry 3 }
178 lbFilterGroupPriority OBJECT-TYPE
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
188 ::= { lbFilterGroupEntry 4 }
192 -- Capabilities Classes
195 lbCapabilitiesClasses OBJECT IDENTIFIER ::= { lbPolicyPib 2 }
198 -- Capabilities Table
201 lbCapabilitiesTable OBJECT-TYPE
202 SYNTAX SEQUENCE OF LbCapabilitiesEntry
203 PIB-ACCESS install-notify
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 "
211 ::= { lbCapabilitiesClasses 1 }
213 lbCapabilitiesEntry OBJECT-TYPE
214 SYNTAX LbCapabilitiesEntry
217 "An instance of this class describes a set of capabilities
218 of the load balancer or the capabilities applied to a
221 ::= { lbCapabilitiesTable 1 }
223 LbCapabilitiesEntry ::= SEQUENCE {
224 lbCapPrid InstanceId,
225 lbCapStickyMode BITS,
226 lbCapHttpReturnCodes BITS,
227 lbCapBalanceAlgorithm BITS,
228 lbCapAlgorithmParams Prid,
229 lbCapPreserveSrcAddr TruthValue,
230 lbCapDirectReturn TruthValue }
232 lbCapPrid OBJECT-TYPE
236 "An integer index that uniquely identifies an instance of
237 the lbCapabilitiesEntry class."
239 ::= { lbCapabilitiesEntry 1 }
241 lbCapStickyMode OBJECT-TYPE
244 sourceAddressBased (2) }
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."
252 ::= { lbCapabilitiesEntry 2 }
254 lbCapReturnCodes OBJECT-TYPE
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."
267 ::= { lbCapabilitiesEntry 3 }
269 lbCapBalanceAlgorithm OBJECT-TYPE
272 weightedRoundRobin(2),
274 weightedLeastConnections(4),
275 fastestServerResponse(5),
276 serverCpuUtilizaiton(6),
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
288 ::= { lbCapabilitiesEntry 4 }
290 lbCapAlgorithmParams OBJECT-TYPE
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.
298 TBD: define parameters classes for all existing algorithms.ö
300 ::= { lbCapabilitiesEntry 5 }
302 lbCapPreserveSrcAddr OBJECT-TYPE
306 "Indicates whether Source Address must be preserved when
307 forwarding a request to server.ö
309 ::= { lbCapabilitiesEntry 6 }
311 lbCapDirectReturn OBJECT-TYPE
315 "Indicates whether a response from data center server could
316 go directly to client bypassing the load balancer.ö
318 ::= { lbCapabilitiesEntry 7 }
325 lbServerClasses OBJECT IDENTIFIER ::= { lbPolicyPib 3 }
331 lbServerTable OBJECT-TYPE
332 SYNTAX SEQUENCE OF LbServerEntry
336 "This table consists of data center servers."
338 ::= { lbCapabilitiesClasses 1 }
340 lbServerEntry OBJECT-TYPE
344 "An instance of this class describes a data center server."
346 PIB-INDEX { lbServerPrid }
348 ::= { lbServerTable 1 }
350 LbServerEntry ::= SEQUENCE {
351 lbServerPrid InstanceId,
352 lbServerName SnmpAdminString,
353 lbServerAddressType InetAddressType,
354 lbServerAddress InetAddress,
355 lbServerMode INTEGER }
357 lbServerPrid OBJECT-TYPE
361 "An integer index that uniquely identifies an instance of
362 the lbServerEntry class."
364 ::= { lbServerEntry 1 }
366 lbServerName OBJECT-TYPE
367 SYNTAX SnmpAdminString
372 ::= { lbServerEntry 2 }
374 lbServerAddressType OBJECT-TYPE
375 SYNTAX InetAddressType
378 "Type of address for server."
380 ::= { lbServerEntry 3 }
382 lbServerAddress OBJECT-TYPE
386 "Address (IP address or DNS Name) for server."
388 ::= { lbServerEntry 4 }
390 lbServerMode OBJECT-TYPE
397 "Indicates the mode of the server. Enumeration values are
402 ::= { lbServerEntry 5 }
405 -- Server Group Table
408 lbServerGroupTable OBJECT-TYPE
409 SYNTAX SEQUENCE OF LbServerGroupEntry
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
419 ::= { lbServerClasses 2 }
421 lbServerGroupEntry OBJECT-TYPE
422 SYNTAX LbServerGroupEntry
425 "An instance of server group."
427 PIB-INDEX { lbServerGroupPrid }
429 ::= { lbServerGroupTable 1 }
431 LbServerGroupEntry ::= SEQUENCE {
432 lbServerGroupPrid InstanceId,
433 lbServerGroupId TagId,
434 lbServerGroupServerId ReferenceId,
435 lbServerGroupPriority Unsigned32 }
437 lbServerGroupPrid OBJECT-TYPE
441 "An integer index that uniquely identifies an instance of
442 the lbServerGroupEntry class."
444 ::= { lbServerGroupEntry 1 }
446 lbServerGroupId OBJECT-TYPE
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."
454 ::= { lbServerGroupEntry 2 }
456 lbServerGroupServerId OBJECT-TYPE
458 PIB-REFERENCES { lbServerEntry }
461 "Pointer to an instance of server. The server with the same
464 ::= { lbServerGroupEntry 3 }
466 lbServerGroupPriority OBJECT-TYPE
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
476 ::= { lbServerGroupEntry 4 }
483 lbServiceClasses OBJECT IDENTIFIER ::= { lbPolicyPib 4 }
489 lbServiceTable OBJECT-TYPE
490 SYNTAX SEQUENCE OF LbServiceEntry
494 "This table consists of entries that combine filter groups,
495 capabilities and server groups to form services."
497 ::= { lbServiceClasses 1 }
499 lbServiceEntry OBJECT-TYPE
500 SYNTAX LbServiceEntry
503 "An instance of this class describes a service."
505 PIB-INDEX { lbServicePrid }
507 ::= { lbServiceTable 1 }
509 LbServiceEntry ::= SEQUENCE {
510 lbServicePrid InstanceId,
511 lbServiceName SnmpAdminString,
512 lbServiceFilterGroupId TagReference,
513 lbServiceServerGroupId TagReference,
514 lbServiceCapabilitiesId ReferenceId }
516 lbServicePrid OBJECT-TYPE
520 "An integer index that uniquely identifies an instance of
521 the lbServiceEntry class."
523 ::= { lbServiceEntry 1 }
525 lbServiceName OBJECT-TYPE
526 SYNTAX SnmpAdminString
529 "Name to identify a service."
531 ::= { lbServiceEntry 2 }
533 lbServiceFilterGroupId OBJECT-TYPE
535 PIB-TAG { lbFilterGroupId }
538 "Pointer to a group of Filters. An instance of
539 lbFilterGroupEntry with the same tag id must be present."
541 ::= { lbServiceEntry 3 }
543 lbServiceServerGroupId OBJECT-TYPE
545 PIB-TAG { lbServerGroupId }
548 "Pointer to a group of Servers. An instance of
549 lbServerGroupEntry with the same tag id must be present."
551 ::= { lbServiceEntry 4 }
553 lbServiceCapabilitiesId OBJECT-TYPE
555 PIB-REFERENCES { lbCapabilitiesEntry }
558 "Pointer to an instance of capabilities class. An instance
559 of lbCapabilitiesEntry with the same tag id must be
562 ::= { lbServiceEntry 5 }
566 -- Compliance section