ON-SWITCH POLICY RULE CACHING FOR DATA COMMUNICATION SWITCH
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. provisional patent application serial numbers 60/160.560 entitled "QUALITY OF SERVICE POLICY MANAGER", 60/160.520 entitled "QUALITY OF SERVICE SYSTEM ARCHITECTURE" and 60/160,483 entitled "QUALITY OF SERVICE MANAGER", all filed October 20, 1999, the contents of all of which are hereby
10 incorporated by reference. FIELD OF THE INVENTION
The present invention relates generally to data communication switches, and more
, particularly to on-switch policy rule caching for a data communication switch.
BACKGROUND OF THE INVENTION
Data communication switches are becoming more intelligent. Whereas legacy data communication switches often provided indiscriminate first in, first out (FIFO) delivery of packets,
20 more recent vintage data communication switches regularly depart from FIFO packet ordering in connection with providing different qualities of service (QoS) for different flows. QoS first became popularized in cell-switched ATM networks, but is rapidly migrating to packet-switched networks and protocols, including bridged (Layer 2, or "L2") and routed (Layer 3, or "L3") networks and
25 protocols.
Common QoS system features are emerging in L2/L3 switching environments. One such feature involves configuring policy "rules" on a directory server for subsequent application in provisioning QoS to flows seen on a switch. Policy rules typically have a flow condition component
30 and a QoS action component, and answer the question of "what" QoS action should be applied to packets satisfying the flow condition. For instance, a simple policy rule may take the form "treat all flows in group 2 at priority level 3", in which case the flow condition is "group 2" and the QoS
-,c action is "priority level 3".
Conventionally, policy rules have been applied to provision QoS for flows seen on a switch by "pulling" the rules down from a directory server "on demand", i.e. upon seeing the new flow on the switch. Because the same rules may apply to different flows seen on the switch, however, the requirement of engaging a directory server and downloading a policy rule for each flow is highly inefficient. It would be desirable to download rules to the switch once and apply them to provision QoS for several flows, while safeguarding against application of "stale" rules to new flows. SUMMARY OF THE INVENTION
The present invention provides on-switch policy rule caching for facilitating QoS provisioning on a data communication switch. Policy rules downloaded from a directory server are cached on the switch for a determinate duration to enable their application in provisioning QoS for multiple flows. Policy rules are retained on-switch until aged-out. Aging-out occurs in response to a time limit associated with a cached policy rule meeting an expiration condition. A fresh policy rule may be downloaded from the directory server in response to aging-out of a stale policy rule. A time limit associated with a cached policy rule may be extended in response to application of the policy rule to a new flow. The on-switch policy rule caching method may be applied in conjunction with in-band or out-of-band QoS provisioning.
These and other aspects of the invention may be better understood by reference to the following detailed description taken in conjunction with the accompanying drawings briefly described below.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a network in which an on-switch policy rule caching method and apparatus of the present invention is operative in a first embodiment;
Figure 2 shows the rule cache of Figure 1 in greater detail;
Figure 3 shows a network in which an on-switch policy rule caching method and apparatus of the present invention is operative in a second embodiment;
Figure 4A and 4B are flow diagrams describing a QoS provisioning method in accordance with the first embodiment;
Figures 5A and 5B are flow diagrams describing a QoS provisioning method in accordance with the second embodiment; and
Figure 6 is a flow diagram describing an on-switch policy rule caching method of present invention operative in conjunction with the first and second embodiments. DETAILED DETAILED DESCRIPTION
Figure 1 shows a network in which on-switch policy rule caching is operative in conjunction with in-band QoS provisioning. Provisioning conducted in connection with a path set-up protocol such as, for example, Resource Reservation Protocol (RSVP), may include provisioning conducted in connection with the data packet forwarding process. The network includes switch 140 having switching modules 150, 160, and 170 supporting external devices including end stations 110 and 112, devices in backbone network 120, and directory server 130. Switch 140 includes management module 180 linked to switching modules 150, 160, and 170 via data bus 187 for transmitting data traffic. Management module 180 is also linked to switching modules 150, 160, and 170 via management bus 188 for transmitting management traffic including QoS information for various flows. Management module 180 includes QoS mapper-classifier 181, QoS manager 182, policy manager 183, QoS driver 184, source learning module 185 and rule cache 186 for facilitating in-band QoS provisioning. QoS mapper classifier 181, QoS manager 182, policy manager 183, QoS driver 184, and source learning module 185 are preferably software modules. Alternatively, implementation of the system may be accomplished in a combination of hardware, firmware (such as, e.g., application specific integrated circuits ("ASICS") or other customized circuits), and/or software or by any method known in the art.
Switch 140 preferably supports in-band QoS provisioning with on-switch policy rule cachings. In operation, according to a one embodiment, a data packet received on switch 140 from end station 110 and having an unknown source address is captured off data bus 187 by management module 180. The unknown source address data packet is forwarded to source learning module 185 for learning the association between the source address and the switching module 150 on which the packet arrived. A conventional media access control (MAC) address is contemplated. In addition
to performing source learning, source learning module 185 notifies QoS manager 182 of the arrival of the unknown source address data packet, which may constitute, for example, a new flow. In response to receiving notification, QoS manager 182 requests a QoS assignment for the new flow from policy manager 183. In response to receiving the request for a QoS assignment, policy manager 183 determines whether an applicable policy rule is stored in rule cache 186. If an applicable policy rule is found in rule cache 186, policy manager 183 returns a policy response for the flow to QoS manager 182, including a flow identifier and QoS action. In response to receiving
10 the policy response, QoS manager 182 preferably divides the policy response into flow identifier and QoS action parts and forwards the parts to QoS mapper-classifier 181. Mapper-classifier 181 preferably associates the flow identifier with an output queue supporting the QoS action and notifies QoS driver 184 of the association. QoS driver 184 preferably makes a flow identifier-output queue
15 identifier association on one or more of switching modules 150, 160, 170 via management bus 188 to enforce the QoS action on switch 140.
If an applicable policy rule is not found in rule cache 186, policy manager 183 requests an jr, applicable policy rule from directory server 130. Policy manager 183 preferably transmits a request to directory server 130 for an applicable policy rule using Lightweight Directory Access Protocol (LDAP). In response to the request, directory server 130 returns an applicable policy rule to policy manager 183. QoS provisioning on switch 140 then proceeds as described above, except policy
25 manager 183 stores the downloaded policy rule in rule cache 186 for future reference, such as in provisioning QoS for a subsequent flow initiated by end station 112 subject to the same policy rule. Referring now to Figure 2, rule cache 186 is shown in greater detail. Rule cache 186 may preferably include an entry for each policy rule including a flow condition component 210 and a QoS
30 action component 220. The flow condition component may preferably include a VLAN identifier (virtual local area network (VLAN) identifier) or some other logical group identifier and the QoS action component preferably includes a priority level and a maximum bandwidth level. Each QoS assignment requested by QoS manager 182 for a new flow preferably includes a VLAN identifier
35 associated with the flow. In response to receiving a request for a QoS assignment including a VLAN
identifier, policy manager 183 determines whether an entry in rule cache 186 has the VLAN identifier as a flow condition component. If an entry in rule cache 186 has the VLAN identifier as a flow condition component, policy manager 183 preferably returns a policy response for the flow to QoS manager 182 including a flow identifier and the priority level and maximum bandwidth level from the QoS action fields of the corresponding entry. In response to receiving a policy response, QoS manager 182 preferably divides the policy response into flow identifier and QoS action parts and forwards the parts to QoS mapper-classifier 181. A flow identifier is preferably sufficient to
10 distinguish the flow to which it applies from other flows and may include, by way of example, one or more of a source address, destination address, source port, destination port, time of day, week, month or year and VLAN identifier. Mapper-classifier 181 preferably associates the flow with an output queue supporting the QoS actions and forwards the association to QoS driver 184, which
15 configures flow identifier-output queue association on one or more of switching modules 150, 160, 170 via management bus 188.
Referring now to Figure 3, a network in which on-switch policy rule caching is operative in
~r. conjunction with out-of-band QoS provisioning, which may include, provisioning conducted in connection with a path set-up protocol such as, for example, Resource Reservation Protocol (RSVP), which includes provisioning conducted in connection with the data packet forwarding process. The network includes switch 340 having elements 350, 360, 370, 380, 387, and 388 corresponding to
25 respective elements 150, 160, 170, 180, 187, and 188 on switch 140, except switch 340 includes RSVP module 385. Switch 340 supports external devices, including end stations 310, 312, devices in backbone network 320 and directory server 330.
More particularly, management module 380 includes QoS mapper-classifier 381, QoS
30 manager 382, policy manager 383, QoS driver 384, RSVP module 185 and rule cache 186 for facilitating out-of-band QoS provisioning with on-switch policy rule caching as follows. An RSVP Reservation (Resv) message packet received on switch 340 from end station 310 is captured off data bus 387 by management module 380. The Resv message packet is forwarded to RSVP module 385,
35 prompting notification of QoS manager 382 of the arrival of an Resv message packet. In response
to receiving notification of the Resv message packet, QoS manager 382 requests from policy manager 383 a QoS assignment for the flow identified in the Resv message packet per the QoS actions identified in the Resv message packet. A QoS assignment preferably includes a VLAN identifier, a requested priority level and a requested maximum bandwidth level. In response to receiving the request for a QoS assignment, policy manager 383 determines whether an applicable policy rule, preferably a policy rule having the VLAN identifier as a flow condition component, is stored in rule cache 386. If an applicable policy rule is found in rule cache 386, policy manager 383 applies the QoS actions indicated by the applicable rule, preferably a priority level and a maximum bandwidth level, as limits against the QoS actions requested in the QoS assignment. If none of the requested QoS actions exceeds a corresponding QoS action limit, policy manager 383 provides to QoS manager 382 notification that the reservation has been accepted and a policy response including a flow identifier and the requested QoS actions. In response to receiving the notification and policy response, QoS manager 382 divides the policy response into flow identifier and QoS action parts and forwards the parts to QoS mapper-classifier 381. Mapper-classifier 381 preferably associates the flow with an output queue supporting the QoS action and forwards the association to QoS driver 384, which configures the flow ID-queue ID association on one or more of network interfaces 350, 360, 370 via management bus 388.
If an applicable policy rule is found in rule cache 386, but one or more of the requested QoS actions exceeds a corresponding QoS action limit, QoS manager 382 is notified that the request has been rejected and the flow ID-queue ID association is not configured on switch 340.
If an applicable policy rule is not found in rule cache 386, policy manager 383 requests an applicable policy rule from directory server 330. Policy manager 183 transmits a request to directory server 330 for an applicable policy rule using Lightweight Directory Access Protocol (LDAP). In response to the request, directory server 330 returns an applicable policy rule to policy manager 383. Processing of the QoS assignment request on switch 340 then proceeds as described above, except policy manager 383 preferably stores the downloaded policy rule in rule cache 386 for future reference, for example, in provisioning QoS in response to a subsequent Resv message packet
received on switch 340 from end station 312 for a different flow subject to the same policy rule.
In addition to on-switch processing of Resv message packets received on switch 340, Resv message packets are preferably forwarded upstream to the "next hop" on the flowpath via backbone network 320 in accordance with RSVP convention.
The present invention preferably attempts to ensure that "stale" policy rules are not applied on switch 140, in the case of in-band QoS provisioning, and switch 340, in the case of out-of-band QoS provisioning. To prevent application of "stale" policy rules, each policy rule downloaded from a directory server 130, 330 to a switch 140, 340 has associated therewith a time-to-live value that triggers aging-out of the rule after a determinate duration. The policy manager 183, 383 preferably maintains a list of entries including rule cache indices and associated time-to-live values for active policy rules. The policy manager 183, 383 preferably checks the list periodically to reduce the time- to-live values and determine whether the time-to-live of any active policy rule has expired. In response to a determination that a time-to-live of an active policy rule has expired, the policy manager 183, 383 preferably takes a series of actions. The policy manager 183, 383 preferably uses the rule cache index associated with the policy rule for which the time-to-live has expired to flush the "stale" policy rule from the rule cache 183, 383. The policy manager 183, 383 also preferably requests a "fresh" policy rule from the directory server 130, 330 having the same flow condition component as the flushed policy rule. The policy manager 183, 383 may also instruct the QoS manager 182, 382 to disable flow ID-queue ID associations configured on switching modules 150, 160. 170 or 350, 360, 370 pursuant to application of the now-"stale" policy rule. Alternatively, the policy manager 183, 383 may "grandfather"-in previously configured associations such that the associations may continue to be applied on the switch 140, 340.
In addition to periodic reduction of time-to-live values, a time-to-live value for an active policy rule may be increased, if desired, in response to application of the policy rule to a new flow. In this way, rule "staleness" may be determined in relation to the frequency of application on switch 140. 340.
Turning now to Figures 4A and 4B, and first to 4A, a flow diagram describes in-band QoS
provisioning on switch 140. A data packet originated on end station 110 is received at switching module 150 (405) and a source address is checked to see if it is known or unknown on switch 140 (410). If the source address is known, no QoS provisioning action is taken. If, however, the source address is unknown, the data packet is forwarded to source learning module 185 over data bus 187 (415). In response to arrival of the data packet at source learning module 185, QoS manager 182 is notified of a new flow (420). QoS manager 182 requests a QoS assignment for the new flow from policy manager 183 (425). In response to receipt of the request for a QoS assignment, policy manager 183 searches rule cache 186 for an applicable policy rule (430). The applicable policy rule is found in rule cache 186 or, if not found in rule cache 186, is located in and downloaded from directory server 130 (435). In either event, the rule is applied to determine a policy response for the new flow on switch 140 (440). Turning now to Figure 4B, policy manager 183 transmits the policy response for the new flow to QoS manager 182 (445). QoS manager 182 separates the policy response into flow ID and QoS action components (450) and transmits the components to QoS mapper-classifier 181. Particularly, the QoS action component is transmitted to the QoS mapper for a queue ID determination (455), whereas the flow ID component is transmitted to the QoS classifier (460). In response, QoS driver 184 configures the flow ID-queue ID association on one or more of switching modules 150, 160, 170 by initiating a control flow over management bus 188 (465) to complete QoS provisioning for the new flow. Turning now to Figures 5A and 5B, and first to 5 A, a flow diagram describes out-of-band
QoS provisioning on switch 340 for a flow, particularly an RSVP-signaled flow. A packet originated on end station 310 is received at switching module 350 (505) and a check is made to determine if the packet is an RSVP message packet (510). If the packet is not an RSVP message packet, no QoS provisioning action is taken. If the packet is an RSVP message packet, the packet is forwarded to RSVP module 385 over data bus 387 (515). A check is made to determine if the packet is an RSVP Resv message packet (520). If the packet is not a Resv message packet, the packet is preferably processed in accordance with RSVP convention per the packet' s RSVP message type. If the packet is an Resv message packet, QoS manager 382 is notified of a RSVP Resv request
(525). QoS manager 382 requests a QoS assignment for the new flow from policy manager 383 in accordance with the Resv request (530). In response to receipt of the request for a QoS assignment, policy manager 383 searches rule cache 386 for an applicable policy rule (535). The applicable policy rule is found in rule cache 386 or, if not found in rule cache 386 is located in and downloaded from directory server 330 (540). In either event, the QoS action component of the rule is applied as a limit against the requested QoS action (545). Turning now to Figure 5B, if a requested QoS action exceeds a corresponding limit (550), QoS manager 382 is notified that the Resv request has been rejected (555) and processing continues per RSVP convention. If no requested QoS action exceeds a limit, however, policy manager 383 determines a policy response for the flow per the Resv request and notifies QoS manager 382 that the Resv request has been accepted (560). QoS manager 382 parses the policy response into flow ID and QoS action components (565) and transmits the components to QoS mapper-classifier 381. Particularly, the QoS action component is preferably transmitted to the QoS mapper for a queue ID determination (570) and the flow ID component is preferably transmitted to the QoS classifier (575). In response, QoS driver 384 configures the flow ID-queue ID association on one or more of switching modules 350, 360, 370 through a control flow conducted over management bus 388 (580) to complete QoS provisioning for the RSVP-signaled flow.
Turning finally to Figure 6, a flow diagram describing an on-switch QoS rule caching method of the present invention is shown to be operative in conjunction with in-band and out-of-band QoS provisioning. A policy rule and an associated time-to-live value are downloaded from a directory server 130, 330 in response to a QoS assignment request initiated on a switch 140, 340 which could not be addressed locally by reference to the policy rules active in an on-switch rule cache 186, 386 (610). The downloaded QoS rule is cached and the time-to-live value is stored on the switch 140, 340 in association therewith (620). After a fixed interval (630), the time-to-live value is decremented (640) and a check is made to determine if the time-to-live has expired (650). If the time-to-live has not expired, the algorithm returns to Step 630. However, if the time-to-live has expired, the "stale" policy rule is removed from the rule cache 186. 386 (660) and a "fresh" policy
rule is downloaded from the directory server 130, 330 for the same flow condition as the "stale" policy rule (670).
It will be appreciated by those of ordinary skill in the art that the invention can be embodied in other specific forms without departing from the spirit or essential character hereof. The present invention is therefore considered in all respects illustrative and not restrictive. The scope of the invention is indicated by the appended claims, and all changes that come within the meaning and range of equivalents thereof are intended to be embraced therein.