Internet Engineering Task Force J. Scudder Internet-Draft Juniper Networks Intended status: Standards Track C. Appanna Expires: September24, 201029, 2011 Cisco Systems I. Varlashkin Easynet Global Services March23, 201028, 2011 Multisession BGPdraft-ietf-idr-bgp-multisession-05draft-ietf-idr-bgp-multisession-06 Abstract This specification augments "Multiprotocol Extensions for BGP-4" (MP- BGP) by proposing a mechanism to facilitate the use of multiple sessions between a given pair of BGP speakers. Each session is used to transport routes related by some session-based attribute such as AFI/SAFI. This provides an alternative to the MP-BGP approach of multiplexing all routes onto a single connection. Use of this approach is expected to provide finer-grained fault management and isolation as the BGP protocol is used to support more and more diverse services. Status of this Memo This Internet-Draft is submittedto IETFin full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force(IETF), its areas, and its working groups.(IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts.Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.This Internet-Draft will expire on September24, 2010.29, 2011. Copyright Notice Copyright (c)20102011 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .34 1.1. Requirements Language . . . . . . . . . . . . . . . . . .45 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . .45 3.UseOverview ofBGP Capability Advertisementoperations . . . . . . . . . . . . . . . . . . . . 5 4. Multisession BGP Capability Code . . . . . . . . . . . . . . . 6 5. New NOTIFICATION Subcodes . . . . . . . . . . . . . . . . . .6 5. Overview of Operation7 6. Modified Connection Collision Handling . . . . . . . . . . . . 7 7. Connection establishment . . . . . . . . . .7 5.1. Using Multisession. . . . . . . . . 8 8. Graceful restart . . . . . . . . . . .8 5.1.1. Initiating Connections. . . . . . . . . . . . 10 9. Error handling . . . .8 5.1.1.1. Continuing a Redirected Connection. . . . . . . .10 5.1.2. Accepting Connections. . . . . . . . . . . . 10 10. Operational considerations . . . .10 5.1.3. Collision Detection, Graceful Restart. . . . . . . .11 6.. . . . . . 10 11. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 117.12. State Machine . . . . . . . . . . . . . . . . . . . . . . . .12 7.1. Modifications to Connect State and Active State11 13. Discussion . . . . . . .12 7.2. Addition of WaitForOpen State, Deletion of OpenSent State. . . . . . . . . . . . . . . . . . . 11 14. Security Considerations . . . . . . . . .13 8. Discussion. . . . . . . . . . 12 15. Acknowledgements . . . . . . . . . . . . . . . .13 9. Security. . . . . . . 12 16. IANA Considerations . . . . . . . . . . . . . . . . . . .13 10. Acknowledgements. . 12 17. References . . . . . . . . . . . . . . . . . . . . . .14 11. IANA Considerations. . . . 13 17.1. Normative References . . . . . . . . . . . . . . . . .14 12.. . 13 17.2. Informative References . . . . . . . . . . . . . . . . . . 13 Appendix A. Multisession usage scenarios . . . . . . . . . .14 12.1. Normative References. . 13 A.1. Single session on both sides . . . . . . . . . . . . . . . 13 A.2. Single session on one side, multiple sessions on the other . .14 12.2. Informative References. . . . . . . . . . . . . . . . . . . . . . . . 14 A.3. Multiple sessions based on AFI/SAFI . . . . . . . . . . . 15 A.4. Multiple sessions based on arbitrary BGP Capabilities . . 17 A.5. Process level separation of multiple sessions . . . . . . 18 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .1518 1. Introduction Most BGP [RFC4271] implementations only permit a single ESTABLISHED connection to exist with each peer. More precisely, they only permit a single ESTABLISHED connection for any given pair of IP endpoints. BGP Capabilities [RFC5492] extend BGP to allow diverse information (encoded as "capabilities") to be associated with a session. In some cases, a capability may relate to the operation of the protocol machinery; an example is Route Refresh [RFC2918]. However, in other cases a capability may relate specifically to some common distinguishing characteristic of the routes carried over the session; an example is Multiprotocol BGP [RFC4760]. Multiprotocol BGP [RFC4760] extends BGP to allow information for multiple NLRI families and sub-families to be transported in BGP. Routes for different families are distinguished by AFI and SAFI. Routes for different families are commonly multiplexed onto a single BGP session. A common criticism of BGP is the fact that most malformed messages cause the session to be terminated. While this behavior is necessary for protocol correctness, one may observe that the protocol machinery of a given implementation may only be defective with respect to a given AFI/SAFI. Thus, it would be desirable to allow the session related to that family to be terminated while leaving other AFI/SAFI unaffected. As BGP is commonly deployed, this is not possible. A second criticism of BGP is that it is difficult or in some cases impossible to manage control plane resource contention when BGP is used to support diverse services over a single session. In contrast, if a single BGP session carries only information for a single service (or related set of services) it may be easier to manage such contention. In this specification, we propose a mechanism by which multiple transport sessions may be established between a pair of peers. Each transport session is identified by a distinct set of BGP capabilities, notably the MP-BGP capability. Each session is distinct from a BGP protocol point of view; an error or other event on one session has no implications for any other session. All protocol modifications proposed by this specification take place during the OPEN exchange phase of the session, there are no modifications to the operation of the protocol once a session reaches ESTABLISHED state. Although AFI/SAFI is perhaps the most obvious way to group sets of routes being exchanged between BGP peers, sessions can also be distinguished by other BGP capabilities. In general, any capability used in this fashion would be expected to have semantics of identifying some common distinguishing characteristic of a set of routes, just as AFI/SAFI does; however, specifics are beyond the scope of this document.For the sake of clarity, we generally use theMost examples in this document are focusing on MP-BGP capability (or interchangeably, AFI/SAFI)in this document.based grouping for simplicity reason. However actual application of multisessions extension . Such use is illustrative and is not intended to be limiting. Routers implementing this specification MUST also implement the base criteria that is used to define sessions. For example if AFI/SAFI based sessions are desired then routers implementing this specification MUST also implement MP-BGP [RFC4760]. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 2. Definitions "MP-BGP capability" refers to the capability [RFC5492] with code 1, specified in MP-BGP [RFC4760] section 8. A BGP speaker is said to "support" some feature or functionality (for example, to support this specification, or to support a particular AFI/SAFI) when the BGP implementation supports the feature AND the feature has not been disabled by configuration. The Session Identifier is a capability or group of capabilities that will be used to differentiate individual BGP sessions between two IP endpoints. When the AFI/SAFI is used to distinguish sessions, the MP-BGP capability is the session identifier.A3. Overview of operations To allow multiple sessions between same pair ofsession identifiers are saidBGP speakers toconflict when considering them as two sets, there is an intersection between them either in the capabilities or the values contained withinco- exist BGP Multisession extension modifies Connection Collision Detection procedure of thecapabilities, but neither is a subsetbase BGP specification (RFC4271). Rather than considering only IP addresses of theother. For example, a pairpeers new procedure also takes into account list ofMP-BGP capabilities is said to "conflict" when considering themcertain session attributes, such astwo sets (of AFI/SAFI values), there is an intersection between the sets but neither set is a subsetAFI/ SAFI, to determine uniqueness of theother. A BGP speaker is saidsessions. When sessions are deemed to bethe "active" speaker for a given connection if it was the party that initiated the transport open. The active speaker's transport endpoint will typically use an ephemeral port number. A BGP speakerunique each of them issaidthen handled independently, therefore critical conditions (such as malformed UPDATEs) in one session won't affect others. BGP Multisession extension introduces new BGP capability code tobe the "passive" speaker for a given connection if it was the partyindicate thatreceived the transport open. The passive speaker's transport endpoint typically uses the well-knowna BGPport number, 179, butspeaker supports protocol modification described in this documentintroduces an exception detailed in Section 5.1.1.1. 3. Useand new error message sub-codes that facilitate handling of incompatible configurations between two speakers. Following sections provide formal description of the protocol enhancement. Additionally, Appendix contains non-normative examples of desired behaviour for Multisession-enabled BGP speakers, which is intended only for illustrative purpose. 4. Multisession BGP CapabilityAdvertisementCode This specification defines the Multisession capability [RFC5492]: Capability code (1 octet): 68 Capability length (1 octet): variable Capability value (1 octet): Flags followed by the list of capabilities that define a session. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 56 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +-+-+-+-+-+-+-+-+ |G|R| Reserved |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |G| Reserved |Port number (if R is set) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | One or more Capability codes (1 octet each) | ~Session Id ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ G - the most significant bitis defined as the Grouping Support (G) bit. It can be usedwas originally intended by earlier draft version of Multisession specification toindicate support for the abilitydenote capability of a BGP speaker to group multiple capability values into one session.When set (value 1)As thisbit indicates thatinformation can be deduced from Session Id, theBGP speaker supports grouping. An example of grouping is if a BGP speaker wishes touseone session for AFI/SAFI values 1/1, 1/2 and 1/4, and another for AFI/SAFI values 2/1, 2/2 and 2/4. The nextof G bit isdefined as the Redirect (R) bit. When set, it indicates that the sender wishesdeprecated - implementations conforming tocontinue the current BGP session using a different transport endpoint. This entails the active speaker dropping the current session and starting a fresh one using the proposed endpoint; this is detailed in Section 5.1.1.1 below. When set, the transport endpoint information is encoded in the port number fieldfinal version of Multisession specification SHOULD NOT rely on value of thecapability as detailed below. The remaining bits are reserved, and shouldG bit. Reserved - MUST be set to zero bythe sender andsender, MUST be ignored bythe receiver. If the R bit is set, following the reserved bits is the two-octet TCP port number to which the passive speaker wishes to redirect the session. Following the reserved bits and the transport endpoint information if present is areceiver Session Id(entifier) - list ofonezero or moreCapabilitycapability codes (1 octet each) defined inBGP.BGP, whose values will be used to distinguish one group from another. The size of the list is inferred from the length of the overall capability; it is the capability length minusone if the R bit is not set, or minus three if the R bit is set. The capabilities listed specify which capabilities in the OPEN message comprise the session identifier.one. The Multisession capability code itself MUST NOT be listed; if listed it MUST be ignored upon receipt.For example, peers wishing to establish sessions based on AFI/SAFI would exchange theEmpty Session Id list and Session Id containing 1 (one, MultiprotocolExtensions capability code (1)Extensions) as the only value are considered equal and indicate that AFI/SAFI list in thelist. In this caseOPEN message is used to distinguish theMultisession capability would have a lengthgroups. However, if BGP speaker wishes to use compound Session Id that includes AFI/SAFI list as one of the components, then Capability Code 1 MUST be explicitly included in the Session Id. For example, if BGP speaker Session Id to 'X' (denoting Capability Foo) then only Foo will be used as Session Id, i.e. session where Foo is 1 and AFI/SAFI is 1/1 and session where Foo is 1 and AFI/SAFI is 1/2 will be considered as conflicting. On the other hand Session Id set to '1 X' or 'X 1' indicates that groups are identified by combination of Foo and AFI/SAFI, i.e. above twooctets,sessions as well as session where Foo is 2 and AFI/SAFI is 2/4 will be considered unique. For given pair of BGP peers Multisession capability MUST be used either on all orfour octets if redirectnone sessions. This isbeing requested. 4.required due to different connection collision handling procedure used by multisession. 5. New NOTIFICATION Subcodes BGP [RFC4271] Section 4.5 provides a number of subcodes to the NOTIFICATION message, and Section 6.2 elaborates on the use of thosesubcodes.subcodes specific to OPEN message. This specification introducesfivethree newsubcodes:subcodes for OPEN Message Errorsubcodes:code: 7 - Capability Value Mismatch - Session Id mismatch, i.e. remote speaker whishes to use different capability codes in Session Id compare to local speaker 8 - Grouping Conflict9 - Grouping Required 10 - Redirecting Now 11-Redirect Required The Capability Value Mismatch code MAY be used when an OPEN message received contains one or more capabilities whosevaluesare inconsistent with the corresponding capabilitiesofthe local BGP speaker. The Data field MUST list the offendingcapabilitycode(s). The Grouping Conflict code MAY becodes usedwhen an OPEN message contains one or more capabilities whose values conflict with the values of one or more capability groups configured on the local BGP speaker. The Data field MUST indicate onein Session Id of theconflicting locally-configured capability group, encoded as the appropriate capabilities. Thereceived message cannot be unambiguously mapped to a locally configured group 9 - Grouping Requiredcode MAY(from earlier drafts, perhaps should beused when aremoved if not used) BGPspeaker that is configured to require grouping attemptsimplementations conforming toestablish a connection with athis specification SHOULD use new sub-codes as described further down in section "Connection establishment" of this document. 6. Modified Connection Collision Handling BGP speakerthat does not support grouping. (While it is true that it might be possibleconforming tocommunicate much the same informationand actively usingthe Unsupported Capability NOTIFICATION message,thismore explicit method is feltspecification MUST use modified connection collision handling procedure as described in this section. Two sessions are said tobe more transparent.) Ifcollide if and only if both of following conditions are true: 1: theMP-BGPIP addresses on of peers are the same on both sessions 2: values of capabilityiscodes usedas thein sessionidentifier,identifier are either thenotifications could be used as follows: Capability Value Mismatch MAY be used when an OPEN message contains onesame ormore MP-BGP capabilities, none of which lists an AFI/SAFI supported byoverlapping (regardless fully or partially) within given capability code Otherwise two sessions are considered unique and both MAY transition to thelocalESTABLISHED state (subject to rest of BGPspeaker. Itspecification). Before attempting to create new session local system SHOULD evaluate existing sessions with the same peer. If there isobserved that this subcode may be useful for MP-BGP speakersalready a session with the same peer ingeneral, even if they do not (otherwise) implement this specification. The Grouping Conflict code MAY be used when an OPEN message contains several MP-BGP capabilities whose AFI/SAFI conflictESTABLISHED state and new session would collide withone or more AFI/SAFI groups configured onit, BGP speaker SHOULD NOT attempt creating new session; it's a good idea to notify operator of the local system about such potential collision. Upon receipt of an OPEN messages BGPspeaker. The Data fieldspeaker MUSTindicate oneevaluate existing sessions with the same peer. If there is already a session in ESTABLISHED state and multisession distinguisher values of theconflicting locally-configured AFI/SAFI groups, encoded as MP-BGP capabilities. (One might think of this as indicating "I'm not willing to combine AFI/SAFI fooold andbar as you've tried to do.") Use oftheRedirecting Nownew OPEN messages fully match, the old session remains andRedirect Required codesthe new MUST be closed. If there isdetaileda session inSection 5.1.1.1. The use of these subcodes is further elaborated below. 5. Overview of Operation The operation section is divided intoOpenConfirm or OpenSent state and twomain subsections. The "Using Multisession" sections below discuss the BGP speaker's behavior whensessions do not collide according to this document, then both sessions proceed as normally and section 6.8 of RFC4271 MUST NOT be applied. If on thepeer does supportother hand two sessions collide according to definition of thisspecification or is assumed to. The "Backward Compatibility"document, then original procedure from sectiondiscusses6.8 of RFC4271 MUST be applied, except for the NOTIFICATION type. Whereas original specification prescribes to use 'Cease' error code, multisession enabled BGPspeaker's behavior when the peer does not supportspeaker SHOULD send NOTIFICATION message as described in thisspecification, ordocument. 7. Connection establishment When BGP Multisession isassumed not to. Both sections also discuss how to switch to the other mode. Aenabled by configuration for given peer and configuration dictates that multiple sessions can potentially be established with given peer, BGP speakerthat supports this specificationMUSTalwaysadvertisetheMultisessioncapability, regardless of its peer's known or presumed capability set.Capability code in the OPEN message on every session with given peer. In all other casesuntil a BGP speaker has initiated or accepted one connection from a given peer, it is unknown whether the peer supports this specification or not. Two strategies canMultisession capability SHOULD NOT be advertised. The value of Session Id MUST beconsidered for making this initial determination -- eitherthe same on every session. When Multisession-enabled BGP speakercan initiallyreceives an OPEN message without BGP Multisession Capability code it MUST assume thatthepeerdoesis notsupport this specification,capable of multiple sessions andswitch modes if it is discovered that it does, or vice-versa. Either approach is acceptable. As discussed previously, thisMUST use original Connection Collision Detection procedure as described in sectiondescribes the operation from the point of view6.8 ofthe MP-BGP capabilityRFC4271. When Multisession-enabled BGP speaker receives an OPEN message containing BGP Multisession Capability Code but with Session Id not matching its own Session Id, local BGP speaker MUST send NOTIFICATION message with Error Code set to 2 ("OPEN Message Error") and Error Sub-code set to 8 ("Grouping Conflict") and drop theassociated AFI/ SAFI values as thesession. If received Session Id matches locally configured Session Id then BGP speaker MUST verify whether this sessionidentifier. It can be replacedwould collide with anyother capability or groupsofcapabilities without any changes tothebehaviorexisting as describedbelow. Note that if a BGP speaker only wishes to support a single AFI/SAFIinits communications with a given peer only onesection "Modified Connection Collision Handling". If session isneeded in any case, and soallowed to continue by connection collision detection procedure, the"multisession" featurenext step for local speaker ismoot. In such a case the behavior required would be indistinguishable from that givento find matching group as follow: 1. If BGP capability code values used in Session Id of the"backward compatibility" section below. In the illustrative examplesreceived message match exactly (i.e. for every value in thefollowing sections, itreceived OPEN message there isgenerally assumed that a BGP speaker does wish to support multiple AFI/SAFIcorresponding value inits communications with a given peer. 5.1. Using Multisession The following subsections discuss a BGP speaker's behavior towards a peer that is known or assumed to support this specification. 5.1.1. Initiating Connections Whena locally configured group) then local BGP speaker(the "active" speaker) attempts BGP communicationproceeds withits peer (the "passive" speaker), it initiatesthis session 2. If values in the received message do not match any of the locally configured groups exactly, but there is oneconnection perand only one locally configured groupof AFI/SAFI it wishes to support. (This impliessuch thata new local TCP port will be allocatedforeach new connection.) The OPEN sent on each connection MUST include the Multisessionevery capabilityand one or more MP-BGP capabilities indicatingcode theAFI/SAFI to be supported on that session. If a non-trivial group of AFI/SAFI (i.e., aintersection between received and local values is non-empty set, then this groupof two or more)isproposed,selected for continuing the session. Note, such partial match results in behaviour similar to non- multisession BGPspeaker MUST also set the G bit of the Multisession capability. Even if a trivialwhen capability codes overlap partially. Rationale behind allowing only one groupof AFI/SAFIfor partial matching isproposed, the G bit SHOULDthat it simplifies specification and implementation; from operational perspective multiple partially matching groups suggest significant descrepancy in configuration between peers and therefore unlikely to beset if grouping is supported. The activerequired in real-life networks. 3. In all other cases local BGP speaker MUSTNOTsend NOTIFICATION message with Error Code setthe R bit nor include an associated TCP port number. Note that any "group of AFI/SAFI" may be a singleton group, i.e. the speaker may wishtouse a separate BGP connection for each AFI/SAFI. If the peer also supports this specification2 (OPEN Message Error) andalso wishesError Sub-code set tosupport the AFI/SAFI in question,8 (Grouping conflict). Once local BGP speaker has identified which locally configured group corresponds to received OPEN message itwill respondproceeds withan OPEN that includestheMultisession capability andsession like it would have been regular non-multisession one, particularly - theAFI/SAFI includedoriginal Finite State Machine applies. BGP speaker is free to handle such session either in theactive speaker's OPEN. Ifsame process/thread as theactive speaker's OPEN included a non- trivial group of AFI/SAFIone thatthe peer supports, then the peer's Multisession capability will have the G bit set.received OPEN message, or it can hand over connection to another process/thread. If uses, thepeer also supports this specification and wishes to support some but not allconnection handover is local-matter ofthe AFI/SAFI in question, it will respond with an OPEN that includes the Multisession capabilityBGP implementation anda subset of AFI/ SAFI included in the active speaker's OPEN. The reason for listing only a subset may be because some of the AFI/SAFI are simply not supported, or because the peer doesnotwish to support the AFI/SAFI as a group (i.e. it maypart of this specification. Appendix contains an example how such handover could beconfigureddone. 8. Graceful restart With respect touseSection 4.2 of BGP Graceful Restart [RFC4724], when determining whether asmaller group). In this case, thenew connection BGP speakerMAY consider the setevaluate values ofAFI/SAFI that were not includedall capability codes used inthe peer's OPEN to form a new group, and MAY try to initiate a newSession Identifier. 9. Error handling If multisession-enabled BGP speaker detects an error condition that warrants session reset, it SHOULD reset only sessionusingthatgroup. Ifwas affected by the error. Resetting other sessions with the same peeralsowould significantly diminish value of multisession extensions. 10. Operational considerations Multisession feature SHOULD be disabled by default. BGP implementation SHOULD provide configuration-time option to enable multisession extension on per-peer basis. If BGP implementation supportsthis specification but does not support grouping, and anon-trivialgroup of AFI/SAFI has been proposed,groups, then it SHOULD provide configuration- time option for operator to control how sessions are grouped. An example of such option would be possibility for an operator to specify which address families willrespond as givenbe carried inthe previous paragraph but with the additional proviso that the G bitone session, and which address families will beclear. In this case, the BGP speaker MAY accept the connection as givencarried inthe previous paragraph, or it MAY reply with aanother session. BGP implementation supporting multisession extension SHOULD allow operator to view state of each individual group and at least last NOTIFICATION messagewith ERROR Code OPEN Message Error and Error Subcode Grouping Required, and thethat caused connectionwill be closed. If the peer wishes to continuereset. For the sake of interoperability between BGPconnectionspeakers supporting multisession, an implementation SHOULD NOT impose hard-coded restrictions on groups based on particular Session Id are put together. If such restrictions are unavoidable, then BGP implementation MUST support at least trivial groups based ona different transport endpoint, in addition to responding as detailed above, it will set the R bit and will include the TCP port numberthatshould be used to continue the connection. See Section 5.1.1.1 for details regarding howattribute. Let's consider thisis handled.on an example. Ifthe peer does not wishimplementation A requires AFI/SAFI 1/1 and 1/4 tosupport thebe always carried within same session, while implementation B requires AFI/SAFIin question, it will reply with a NOTIFICATION message1/4 to be always carried only withError Code OPEN Message Error, and Error Subcode Capability Value Mismatch,1/128 andthe connection will be closed. Anot with any other, then it's not possible to establish session between such BGPspeaker MUST NOT attemptspeakers. However if implementations A and B both allow each AFI/SAFI toinitiate connectionsbe carried each in its own group, then we can establish three sessions - one foranyAFI/ SAFI 1/1, another one forwhichAFI/SAFI 1/4 and third one for AFI/SAFI 1/128. 11. Backward Compatibility This subsection discusses a BGP speaker's behavior towards aconnection already exists. If thepeerdoesthat is known or assumed not to support thisspecification, it will respond with an OPEN that does not include the Multisession capability.specification. Inthis case the connection SHOULD be terminated, and future connections toshort, the BGP speaker's behavior towards such a peer should beattempted inas otherwise defined for the"backward compatibility" mode discussed in Section 6. 5.1.1.1. Continuing a Redirected Connection WhenBGP protocol, according to [RFC4271] and any other extension supported by theactive speakerBGP speaker. If a BGP speaker receivesanOPENfrommessage that doesn't include Multisession Capability and local BGP speaker is required to use multisession (e.g. through configuration by operator), thepassivelocal BGP speakerthat includes transport redirect information, itMUSTreply with an Open Message Errordrop the session and send appropriate NOTIFICATION message as described in Section 5. If multisession is not required, local BGP speaker proceeds withits subcode set to Redirecting Now and close the session. Subsequently,multisession extension disabled, so itMUST attemptappears as regular implementation toinitiate a new session usingthetransport endpoint thatpeer. As previously mentioned, thepassiveBGP speakerhas proposedSHOULD always advertise the Multisession capability inlieuits OPEN message, even towards "backward compatibility" peers. Use of techniques such as dynamic capabilities [I-D.ietf-idr-dynamic-cap] for on-the-fly switching of session modes is beyond theoriginal one (which typically would have been the well-knownscope of this document. 12. State Machine This specification does not modify BGPport, 179). The new session should proceed exactlyFSM asthesuch, but all references to execution of collision handling procedure of originalone did; that is, the active speaker SHOULD send an OPENBGP specification are replaced withthe same content, and can expectcall toreceive from the passive speaker an OPEN with the same contentcollision handling procedure described in this document. The specific state machine modifications to [RFC4271] Section 8.2.2 are aspreviously with the exception that the R bit should be clear and no associated port number should be present. If the R bit is not clear it (and the accompanying port number) SHOULD be disregarded.follows. 13. Discussion Note thatalthough the OPEN messages exchangedmany BGP implementations already permit multiple sessions to be used between a given pair of routers, typically by configuring multiple IP addresses onthe reinitiatedeach router and configuring each sessioncan be expectedto bethe same as or similarbound tothose from the previous session as discussed above, an implementation MUST NOT rely on or enforce this assumption when handling the received OPEN.a different IP address. Thenew session MUST be handled as any other new session would be inprincipal contribution of thisrespect. As discussed above, when the passive speaker requests a redirect, the active speakerspecification isexpectedtodrop the current session and initiate a new one. If it does not do so, the passive speaker MAY electallow multiple sessions tocontinue the session,be created automatically, without additional configuration overhead orit MAY elect to terminateaddress consumption. The specification supports the simple case of one capability being used as the sessionby sending a Redirect Required NOTIFICATION. 5.1.2. Accepting Connections When processing aidentifier and one connectionattempt, the BGP speaker MUST wait until the peer's OPEN message has been received before proceeding. This is at varianceper session identifier value. It also permits connections be established based on multiple capabilities as a session identifier with multiple values per capability grouped together per connection. In thebehavior specified in the finite state machine (FSM)context of[RFC4271], but is interoperable with that FSM. The FSM changes are specified in Section 7. OnceMP-BGP based connections, which we believe may be thepeer's OPEN message has been received, ifmost prevalent use of this specification, itincludes the Multisession capability andpermits supporting oneor more MP-BGP capabilities indicating a groupAFI/SAFI per connection, and also permits arbitrary grouping of AFI/SAFIthat theonto BGPspeaker wishesconnections. For such grouping tosupport, then the BGP speaker responds with an OPEN message that includesfunction pleasingly, both peers participating in a connection need to agree on what AFI/SAFI groupings will be used. If conflicting groupings are configured, theMultisession capability and oneconnections may not establish, or moreMP-BGP capabilities indicatingconnections may be established than were expected (in thesame AFI/SAFI.degenerate case, one connection per AFI/SAFI could be established despite configured groupings). We observe that the potential for misbehavior in the presence of conflicting configuration is not unusual in BGP, and that support for, and configuration of grouping is purely optional. 14. Security Considerations This document does not change the BGP security model. 15. Acknowledgements The authors would like to thank Martin Djernaes, Pedro Marques, Keyur Patel, Robert Raszuk, Yakov Rekhter, David Ward and Anton Elita for their valuable comments. 16. IANA Considerations IANA has allocated BGP Capability Code 68 as the Multisession BGP Capability. This document requests IANA to allocate three new OPEN Message Error subcodes: 7 - Capability Value Mismatch 8 - Grouping Conflict 9 - Grouping Required 17. References 17.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, January 2007. [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, January 2007. [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement with BGP-4", RFC 5492, February 2009. 17.2. Informative References [I-D.ietf-idr-dynamic-cap] Chen, E. and S. Ramachandra, "Dynamic Capability for BGP-4", draft-ietf-idr-dynamic-cap-12 (work in progress), October 2010. [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, September 2000. Appendix A. Multisession usage scenarios This section demonstrates usage of Multisession Extension in several common scenarios. All examples presented here for illustrative purpose only, they're not part of Multisession specification. A.1. Single session on both sides BGP Speaker A and BGP Speaker B are both configured to exchange IPv4 unicast (AFI=1, SAFI=1) and IPv4 L3VPN (AFI=1, SAFI=128) prefixes over single session. If Multisession extension is disabled by configuration on both sides, then the session is, from every perspective, indistinguishable from ordinary (non-multisession) BGP peering. If only one of the speakers is enabled (through configuration) for multisession and yet only with one session to multiplex both AFI/SAFI, then again only single session is established and it looks like normal session. Although multisession- enabled BGP speaker is capable of processing new NOTIFICATION sub- codes, the other side (non-multisession) won't take advantage of it. On the other hand use of new NOTIFICATION sub-codes isn't necessary in this situation because both sides keep all AFI/SAFI within same session. Finally, if both speakers are multisession-enabled, they still setup single session, but now they can use new NOTIFICATION sub-codes for more sophisticated error handling. Note that if both speakers configured to use only single session and their respective AFI/SAFI lists overlap but do not match exactly, then like with ordinary (non-multisession) BGP speakers the session will transition to ESTABLISHED state. It's possible that one of the speakers (or both) require exact match of AFI/SAFI lists in order to establish session (either by implementation or through configuration). In this case such speaker will send NOTIFICATION message with Error Code 2 (OPEN Message Error) and Sub-code 8 (Grouping conflict) and subsequently close the session. A.2. Single session on one side, multiple sessions on the other In this setup Speaker A is configured to carry IPv4 unicast (AFI=1, SAFI=1) and IPv4 L3VPN (AFI=1, SAFI=128) prefixes within single session, while Speaker B is configured with two sessions - one for IPv4 unicast and second for IPv4 L3VPN. Several scenarios are possible depending on which speaker sends OPEN message first and whether Speaker A is multisession-enabled or not. Assuming Speaker A is not multisession-enabled, it sends OPEN message first and there is no existing session between these two peers. Speaker B determines that OPENincludes the Multisession capability and one or more MP- BGP capabilities indicating a group ofmessage lists both AFI/SAFI and it knows thatconflicts with an AFI/SAFI groupingit wants to split them into different sessions, therefore it's obvious thathas been configured onsetup cannot function as intended. Since separation of two address families into two groups is performed by operator (as per Multisession Extension specification), theBGP speaker thenmost appropriate action is to prevent any communication between Speaker A and B until operator intervenes and resolves the conflict in configuration. To do this BGPspeaker MAY replySpeaker B sends NOTIFICATION message with Error Code 6 (because peer is not expected to understand new notification sub-codes). Would Speaker A be multisession enabled, then Speaker B would send NOTIFICATION message with Error Code 1 and Error Subcode 9 (Grouping Required). Now let's consider reverse situation - the Speaker B sends an OPENlisting a set ofmessage for either AFI/SAFIthat intersect with those proposed by the peer (in effect overriding the locally configured set) orfirst. Assuming Speaker A is not multisession-enabled, itMAY close the connectionwill accept OPEN message containing either AFI/SAFI and will reply with OPEN message containing both AFI/SAFI. Although session might transitions for a brief period to ESTABLISHED state, the Speaker B upon receipt of the OPEN message will detect misconfiguration and send NOTIFICATION message with Error CodeOPEN Message6 as in previous paragraph. Would Speaker A be multisession-enabled, it could detect misconfiguration on its own and send NOTIFICATION message with Error Code 1 and Error SubcodeGrouping Conflict. The former behavior8 (Grouping conflict). There is possibility that Speaker A opens one TCP connection and sends its OPEN message, and simultaneously Speaker B opens one or two TCP connection(s) and sends OPEN message on each of them. Since Speaker A is not multisession-enabled, it will invoke original collision detection procedure and will drop one of the sessions. Speaker B seeing NOTIFICATION message with Cease error code concludes that Speaker A issuggestednot multisession-capable and that setup prescribed by Speaker B's configuration cannot be achieved. Depending on implementation of Speaker B a session for one of the AFI/SAFI may progress to ESTABLISHED state, but Speaker B will inform operator about incompatible configuration. It's also possible that initially Speaker B has been configured with only one AFI/SAFI, e.g. IPv4 unicast. The session between two peers would come up asthe default if groupingdescribed in previous subsection. Now suppose Speaker B issupported. If the BGP speakerconfigured with additional session to carry IPv4 L3VPN prefixes. Since Speaker A does notsupport AFI/SAFI groupinghave multiple sessions configured, itMAY reply with anwon't send another OPENlisting onemessage as long as first session is in ESTABLISHED state. Therefore it's only possible that Speaker B will attempt establishing second connection and send new OPEN message containing only IPv4 L3VPN AFI/SAFI. If Speaker A is non-multisession enabled, it will drop second session sending NOTIFICATION message. From this Speaker B can conclude that configuration ofthetwo sides is incompatible, will stop attempting to bring up IPv4 L3VPN session and will notify operator. Already ESTABLISHED session may remain unaffected (subject to Speaker B implementation), just like with non-multisession speakers. A.3. Multiple sessions based on AFI/SAFIoutThis is most common use ofthose proposedmultisession extension is to separate prefixes based on AFI/SAFI. Note that use of AFI/SAFI based groups is denoted bythe peer. It MUST also set the G bitempty Optional Data field intheMultisessioncapability to zero. If the passive speaker wishes to continue the session for this particular grouping on a different port number, it setsCapability, which is theR bitsame as inits OPEN and includesprevious two sections. Grouping configuration is devised from theTCP port number on which itlist of actually advertised AFI/ SAFI lists (MP-BGP Capability). This willcontinue the session. The passive speaker MUSTbeprepared to accept a connection on the given port immediatelydemonstrated in followingtransmission ofexamples. Let's consider BGP Speaker A and BGP Speaker B both configured to exchange IPv4 unicast, IPv4 labelled-unicast and IPv4 L3VPN prefixes each in itsOPEN. If the receivedown session. We start with no existing sessions between these speakers. Speaker A (though roles can reverse) sends OPEN messagedoes not include any MP-BGP capability indicating an AFI/SAFI the BGP speaker wishes to support,in which among other capabilities itSHOULD close the connectionannounces MP-BGP Capability for AFI=1 SAFI=1 and Multisession Capability witha NOTIFICATIONempty optional data field. Speaker B upon receipt of such message finds that it expects to exchange IPv4 unicast withError Code OPEN Message ErrorSpeaker B in a dedicated session. It accepts connection andError Subcode Capability Value Mismatch. If the receivedsends similar OPEN messagedoes not include the Multisession capability, then the peer doesto Speaker A. As there were no existing sessions, collision handling procedure is notsupportinvoked at thisspecification. The connection MAY be continued in the "backward compatibility" mode discussed in Section 6, ortime. Next Speaker A (but again itMAYcould beterminatedSpeaker B) starts new TCP connection to Speaker B andfuture connectionssends OPEN message with MP-BGP Capability for AFI=1 SAFI=4 and Multisession Capability with empty optional data field. Speaker B is willing to exchange IPv4 labelled-unicast too, but before accepting thepeer attempted in the "backward compatibility" mode. 5.1.3. Collision Detection, Graceful Restart [RFC4271] Section 6.8 (BGP connectionproposal it executes collisiondetection) considers a pairdetection procedure. Since AFI/ SAFI lists ofconnections to have collided ifthesourceold (ESTABLISHED) anddestination IP addressesofboth connections match. With respectthe new sessions are different, the sessions don't collide and, sending OPEN message with AFI=1 SAFI=4, the Speaker B brings second session topeersESTABLISHED state. In the same way third session, for AFI=1 SAFI=128, is brought up. Note thatsupport thissimilar behaviour will be also observed if two speakers send OPEN messages simultaneously - modified collision handling procedure, introduced by Multisession Extension specification, will mark sessions as unique based on the difference in Session Id (different AFI/SAFIgroups associated with the connections must also intersectlists). If Speaker A opens TCP connection and sends an OPEN message forthem to be consideredeither AFI/SAFI, and simultanously Speaker B opens TCP connection and send OPEN message for the same AFI/SAFI, then modified collision handling procedure will resolve the conflict just like original procedure would do in non-multisession environment. Yet modified collision handling procedure allows sessions with distinct Session Id's tohave collided.coexist without affecting each other. Thisconsideration alsobehaviour applies also toSection 4.2 of BGP Graceful Restart [RFC4724], when determining whether a new connection should be considered equivalent to a reset of a previous TCP session. 6. Backward Compatibility This subsection discusses a BGP speaker's behavior towards a peer thatmore complex cases where groups include more AFI/SAFI or based on different Capability Codes all together. For this reason collision handling isknown or assumednot discussed in remaining scenarios. Now suppose Speaker A configuration is as above, but Speaker B is configured tosupport this specification. In short,combine labelled-unicast and L3VPN prefixes into theBGP speaker's behavior towards such a peer should besame session. IPv4 session is brought up asotherwise definedabove. Next there are two possible alternatives. Either Speaker A sends OPEN message for one of theBGP protocol, accordingremaining sessions, to[RFC4271]which Speaker B responds with NOTIFICATION message Error Code 2 andany other extension supported byError Subcode 8. Or Speaker B sends OPEN message for combined session including both of theBGP speaker. As previously mentioned,remaining address families, to which Speaker A responds either with exactly theBGP speaker SHOULD always advertisesame NOTIFICATION message. At theMultisession capability in its OPEN message, even towards "backward compatibility" peers. If,end only IPv4 session remains inopening a BGP connectionESTABLISHED state, while two other address families require operator's intervention for configuring either Speaker A withsuch a peer,combined session for labelled-unicast and L3VPN, or Speaker B for one session per AFI/SAFI. Note that if Speaker B would have used anOPENimplementation thatincludes the Multisession capability is received from the peer,requires that labelled-unicast and L3VPN address- families are combined into single session, thenthe peer SHOULDbehaviour of each side would bechangedexactly as above. If Speaker A wouldn't have L3VPN configuration for Speaker B at all, then whether second session would progress to"multisession" mode. How this is doneESTABLISHED or not depends on whethertheconfiguration of either side requires exact match between groups (by default implementations expected to mimim original BGPspeaker hasbehaviour which will bring overlapping AFI/SAFI up, but won't require exact match, but some implementation may provide configuration knob to require exact match). Finally we look at the case where AFI/SAFI lists of different configured sessions overlap. Suppose Speaker A is configured with following groups: group 1 AFI=1 SAFI=1, group 2 AFI=1 SAFI=4 and SAFI=128, group 3 AFI=2 SAFI=4; and Speaker B is configured as: group 1 AFI=1 SAFI=1, group 2 AFI=1 SAFI=4, group 3 AFI=1 SAFI=128 and AFI=2 SAFI=4. For simplicity sake we assume that group 1 is brought up first. Both speakers behave as alreadysent an OPEN or not -- If the BGP speaker has not yet sent an OPEN to the peer, then the connection MAY be continueddescribed inthe "multisession" mode discussed above, or it MAY be terminated and future connectionsprevious case. Next let Speaker A to be thepeer attempted in "multisession" mode. If the BGP speaker has sent an OPENfirst tothe peer, then the currentsetup second TCP sessionSHOULD be terminatedandfuture connections to the peer attempted in "multisession" mode. Use of techniques such as dynamic capabilities [I-D.ietf-idr-dynamic-cap]send OPEN message foron-the-fly switchinggroup 2. Applying collision handling procedure as defined in Multisession specification Speaker B continues processing ofsession modesreceived OPEN message. If Speaker B isbeyondconfigured for strict match between thescopegroups, then it will detect incompatibility ofthis document. 7. State Machine As mentioned under "accepting connections" above, this specification modifiesAFI/SAFI list between the received message and its own configuration, therefore it will send NOTIFICATION message with Error Code 2 and Error Subcode 8. If on the other hand Speaker B allows partial overlapping of received and its own AFI lists (as regular BGPfinite state machine, albeitimplementation would ina backward- compatible fashion. In addition, note that one state machine is considered to exist for eachabsence ofthe connections that may exist to a given peer. This implies that, for example, any session flap dampeningmultisession), it will reply with OPEN message thatmay exist is performed perlists AFI=1 SAFI=4 and sessionidentifier. The specific state machine modificationspotentially progresses to[RFC4271] Section 8.2.2 are as follows. 7.1. ModificationsESTABLISHED state provided that Speaker A doesn't require exact match on AFI/SAFI list. Similar applies toConnect State and Active State Intheactions in response tosession 3 for theevents Open Delay timer expires [Event 12] and TCP connection succeeds [Event 16remaining AFI/SAFI. Note that configuration for exact orEvent 17], an OPENpartial match between AFI/SAFI lists is the same for all sessions between given peers. A.4. Multiple sessions based on arbitrary BGP Capabilities Although grouping based on arbitrary attributes isnot sent andthestate changes to WaitForOpen and not to OpenSent. 7.2. Addition of WaitForOpen State, Deletionmost comprehensive scenario, the behaviour ofOpenSent State The WaitForOpen statethe BGP speakers is essentially the same as inall respects to OpenSent, except for the action in response to receptioncase ofa valid OPEN message [Event 19]. In that event, the local system sends an OPEN message prior to sending a KEEPALIVE message. The OpenSent state is deleted. All referencesAFI/SAFI based groups. However arbitrary groups do add extra complexity because BGP speakers need toOpenSent are replaced by referencesconsider not only values of single capability, but need toWaitForOpen. 8. Discussion Noteagree upon Capability Codes thatmany BGP implementations already permit multiple sessions to be used between a given pairconstitute Session Id. Following example demonstrates behaviour ofrouters, typically by configuring multiple IP addressesmultisession-enabled BGP speakers in situation where Session Id on eachrouter and configuring each session to be bound to aside is based on differentIP address. The principal contribution of this specificationcapabilities. Let's suppose there is imaginery Capability Code X that denotes Experiment Id, and two speakers would like toallow multiple sessions to be created automatically, without additional configuration overhead or address consumption. The specification supports the simple case of one capability being used as the session identifierexchange IPv4 unicast andone connection per session identifier value. It also permits connections be establishedL3VPN prefixes for two experiments. Speaker A would like to group prefixes into separate sessions based solely onmultiple capabilities as a session identifierExperiment Id (so two sessions withmultiple values per capability grouped together per connection. In the context of MP-BGP based connections, which we believe may be the most prevalent use of this specification, it permits supporting one AFI/SAFI per connection, and also permits arbitrary grouping of AFI/SAFI onto BGP connections. For such grouping to function pleasingly, both peers participating in a connection needtwo AFI/SAFI in each), while Speaker B would like toagree on whathave separate session per experiment per AFI/SAFIgroupings(so four sessions with one AFI/SAFI in each). Since Session Id involves attribute other than AFI/SAFI, the Optional Data field in Multisession Capability will beused. If conflicting groupings are configured,non-empty. Multisession Capability sent by Speaker A will contain only 'Experiment Id Capability Code' in theconnections may not establish, or more connections may be established than were expected (inOptional Data, whereas Speaker B will put there both "Experiment Id Capability Code" and "MP-BGP (AFI/SAFI)". When either speaker receives OPEN message from thedegenerate case, one connection per AFI/SAFI couldpeer, it will notice mismatch between content of the Optional Data field and, since sessions cannot be establisheddespite configured groupings). We observe that the potential for misbehavior inas intended, thepresence of conflicting configuration is not unusual in BGP,speaker will send NOTIFICATION message with Error Code 2 andthat support for,Subcode 7 after which session will be dropped. Both speakers will notify operator and will suppress further attempt to bring session up until configuration ofgrouping is purely optional. 9. Security Considerations The ability to redirect to a port other than the well-known BGP port implieseither side changes. Note that despite Multisession Capability does not containing alegitimate BGP session may exist for which neither port is equalfield to179. This may have implicationsdenote support forfirewall filters used to protect the control processor. In other respects, this documentnon-AFI/SAFI based groups, even an implementation that does notchange the BGP security model. 10. Acknowledgements The authors would likesupport groups based on arbitrary capability codes will be able tothank Pedro Marques, Keyur Patel, Robert Raszuk, Yakov Rekhterrecognise configuration mismatch andDavid Ward for their valuable comments. 11. IANA Considerations IANA has allocated BGP Capability Code 68provide sufficient information to the peer as described above. A.5. Process level separation of multiple sessions As fault isolation is the key motivation for the Multisession Extension it's natural to consider process-level separation between the sessions. Although Multisession specification itself does not prescribe any particular way of handling each session, BGPCapability. This document requests IANAimplementations can leverege IPC facilities provided by host operating systems toallocate five new OPEN Message Error subcodes: 7 - Capability Value Mismatch 8 - Grouping Conflict 9 - Grouping Required 10 - Redirecting Now 11 - Redirect Required 12. References 12.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCshandover arbitrary session toIndicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, January 2007. [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensionsappropriate process. For example, many systems can pass connection from the process that accepted TCP connection to a process dedicated forBGP-4", RFC 4760, January 2007. [RFC5492] Scudder, J.particular group using specially crafted message on Unix socket. This is somewhat acking to inetd, but based on content of the OPEN message (e.g. AFI/SAFI list) rather than on transport protocol properties (e.g. TCP/UDP port numbers). At one extrimity the process that initially accepts TCP connection may be very primitive andR. Chandra, "Capabilities Advertisement with BGP-4", RFC 5492, February 2009. 12.2. Informative References [I-D.ietf-idr-dynamic-cap] Chen, E.can leave even connection collision handling to a specializing process, on the other hand process could handle collision detection itself or even handle particular group on its own while passing only specific group to another process. This process level separation is local implementation business andS. Ramachandra, "Dynamic Capability for BGP-4", draft-ietf-idr-dynamic-cap-10 (work in progress), January 2010. [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, September 2000.does not require specific aid from BGP at protocol specification level. Therefore process level separation is not part of multisession specification. Authors' Addresses John G. Scudder Juniper Networks Email: jgs@juniper.net Chandra Appanna Cisco Systems Email: achandra@cisco.com Ilya Varlashkin Easynet Global Services Email: ilya.varlashkin@easynet.net