< draft-ietf-idr-flowspec-l2vpn-09.txt   draft-ietf-idr-flowspec-l2vpn-10.txt >
Network Working Group W. Hao INTERNET-DRAFT W. Hao
Internet-Draft D. Eastlake Intended Status: Proposed Standard D. Eastlake
Intended status: Standards Track Huawei Huawei
Expires: July 7, 2019 J. Uttaro J. Uttaro
AT&T AT&T
S. Litkowski S. Litkowski
Orange Business Service Orange Business Service
S. Zhuang S. Zhuang
Huawei Expires: November 6, 2019 May 7, 2019
January 03, 2019
BGP Dissemination of L2VPN Flow Specification Rules BGP Dissemination of L2VPN Flow Specification Rules
draft-ietf-idr-flowspec-l2vpn-09 draft-ietf-idr-flowspec-l2vpn-10.txt
Abstract Abstract
This document defines a BGP flow-spec extension to disseminate L2 VPN This document defines a BGP flow-spec extension to disseminate L2 VPN
Ethernet traffic filtering rules. SAFI=134 in [RFC5575] is redefined Ethernet traffic filtering rules. SAFI=134 in draft-ietf-idr-
for this purpose. A new subset of component types and extended rfc5575bis is redefined for this purpose. A new subset of component
community also are defined. A new subset of component types and new types and extended community also are defined. A new subset of
extended community also are defined. component types and new extended community also are defined.
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].
Status of This Memo Status of This Document
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Distribution of this document is unlimited. Comments should be sent
to the authors or the TRILL Working Group mailing list
<dnsext@ietf.org>.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF), its areas, and its working groups. Note that
working documents as Internet-Drafts. The list of current Internet- other groups may also distribute working documents as Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 7, 2019. The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html. The list of Internet-Draft
Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Copyright Notice INTERNET-DRAFT L2VPN Flow Spec
Copyright (c) 2019 IETF Trust and the persons identified as the Table of Contents
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal 1. Introduction............................................3
Provisions Relating to IETF Documents 1.1 Terminology............................................4
(https://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.
Table of Contents 2. Layer 2 Flow Specification encoding in BGP..............5
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 3. Ethernet Flow Specification encoding in BGP.............6
2. Layer 2 Flow Specification encoding in BGP . . . . . . . . . 3 3.1 Order of Traffic Filtering Rules.......................8
3. Ethernet Flow Specification encoding in BGP . . . . . . . . . 4
3.1. Order of Traffic Filtering Rules . . . . . . . . . . . . 6
4. Ethernet Flow Specification Traffic Actions . . . . . . . . . 7
4.1. VLAN-action . . . . . . . . . . . . . . . . . . . . . . . 8
4.2. TPID-action . . . . . . . . . . . . . . . . . . . . . . . 9
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . 11
9.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction 4. Ethernet Flow Specification Traffic Actions.............9
4.1 VLAN-action............................................9
4.2 TPID-action...........................................11
5. IANA Considerations....................................12
6. Security Considerations................................13
7. Acknowledgements.......................................13
8. Contributors...........................................13
Normative References......................................14
Informative References....................................14
Authors' Addresses........................................15
INTERNET-DRAFT L2VPN Flow Spec
1. Introduction
BGP Flow-spec is an extension to BGP that supports the dissemination BGP Flow-spec is an extension to BGP that supports the dissemination
of traffic flow specification rules. It leverages the BGP Control of traffic flow specification rules. It leverages the BGP Control
Plane to simplify the distribution of ACLs. Using this extension new Plane to simplify the distribution of ACLs. Using this extension new
filter rules can be injected to all BGP peers simultaneously without filter rules can be injected to all BGP peers simultaneously without
changing router configuration. The typical application of BGP Flow- changing router configuration. The typical application of BGP Flow-
spec is to automate the distribution of traffic filter lists to spec is to automate the distribution of traffic filter lists to
routers for DDOS mitigation, access control, etc. routers for DDOS mitigation, access control, etc.
[RFC5575] defines a new BGP Network Layer Reachability [RFC5575bis] defines a new BGP Network Layer Reachability Information
Information(NLRI) format used to distribute traffic flow (NLRI) format used to distribute traffic flow specification rules.
specification rules. NLRI (AFI=1, SAFI=133) is for IPv4 unicast NLRI (AFI=1, SAFI=133) is for IPv4 unicast filtering. NLRI (AFI=1,
filtering. NLRI (AFI=1, SAFI=134) is for BGP/MPLS VPN filtering. SAFI=134) is for BGP/MPLS VPN filtering. The Flow specification
The Flow specification match part only includes L3/L4 information match part only includes L3/L4 information like source/destination
like source/destination prefix, protocol, ports, and etc., so traffic prefix, protocol, ports, and etc., so traffic flows can only be
flows can only be selectively filtered based on L3/L4 information. selectively filtered based on L3/L4 information.
Layer 2 Virtual Private Networks (L2VPNs) have already been deployed Layer 2 Virtual Private Networks (L2VPNs) have already been deployed
in an increasing number of networks today. In L2VPN network, we also in an increasing number of networks today. In an L2VPN network, we
have requirement to deploy BGP Flow-spec to mitigate DDoS attack also have requirements to deploy BGP Flow-spec to mitigate DDoS
traffic. Within L2VPN network, both IP and non-IP Ethernet traffic attack traffic. Within an L2VPN network, both IP and non-IP Ethernet
maybe exist. For IP traffic filtering, the Flow specification rules traffic maybe exist. For IP traffic filtering, the Flow
defined in [RFC5575] which include match criteria and actions can specification rules defined in [RFC5575bis] which include match
still be used, flow specification rules received via new NLRI format criteria and actions can still be used, flow specification rules
apply only to traffic that belongs to the VPN instance(s) in which it received via new NLRI format apply only to traffic that belongs to
is imported. For non-IP Ethernet traffic filtering, Layer 2 related the VPN instance(s) in which it is imported. For non-IP Ethernet
information like source/destination MAC and VLAN should be traffic filtering, Layer 2 related information like
considered. But the flow specification match criteria defined in source/destination MAC and VLAN should be considered. But the flow
[RFC5575] only include layer 3 and layer 4 IP information, not layer specification match criteria defined in [RFC5575bis] only include
2 Ethernet information. layer 3 and layer 4 IP information, not layer 2 Ethernet information.
There are different kinds of L2VPN networks like EVPN [RFC7432], BGP There are different kinds of L2VPN networks like EVPN [RFC7432], BGP
VPLS [RFC4761], LDP VPLS [RFC4762] and border gateway protocol (BGP) VPLS [RFC4761], LDP VPLS [RFC4762] and border gateway protocol (BGP)
auto discovery [RFC6074]. Because the flow-spec feature relies on auto discovery [RFC6074]. Because the flow-spec feature relies on
BGP protocol to distribute traffic filtering rules, it can only be BGP protocol to distribute traffic filtering rules, it can only be
incrementally deployed in those L2VPN networks where BGP has already incrementally deployed in those L2VPN networks where BGP has already
been used for auto discovery and/or signaling purposes such as BGP- been used for auto discovery and/or signaling purposes such as BGP-
based VPLS [RFC4761], EVPN and LDP-based VPLS [RFC4762] [4762] with based VPLS [RFC4761], EVPN and LDP-based VPLS [RFC4762] with BGP
BGP auto-discovery [RFC6074]. auto-discovery [RFC6074].
This draft proposes a new subset of flow-spec component types and an This draft proposes a new subset of flow-spec component types and an
extended community to support L2VPN flow-spec application. The flow- extended community to support L2VPN flow-spec application. The flow-
spec rules can be enforced on all border routers or on some interface spec rules can be enforced on all border routers or on some interface
sets of the border routers. SAFI=134 in [RFC5575] is redefined for sets of the border routers. SAFI=134 in [RFC5575bis] is redefined
dissemination of traffic filtering information in an L2VPN for dissemination of traffic filtering information in an L2VPN
environment. environment.
2. Layer 2 Flow Specification encoding in BGP INTERNET-DRAFT L2VPN Flow Spec
The [RFC5575] defines SAFI 133 and SAFI 134 for "dissemination of 1.1 Terminology
IPv4 flow specification rules" and "dissemination of VPNv4 flow
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
INTERNET-DRAFT L2VPN Flow Spec
2. Layer 2 Flow Specification encoding in BGP
[RFC5575bis] defines SAFI 133 and SAFI 134 for "dissemination of IPv4
flow specification rules" and "dissemination of VPNv4 flow
specification rules" respectively. [I-D.ietf-idr-flow-spec-v6] specification rules" respectively. [I-D.ietf-idr-flow-spec-v6]
redefines the [RFC5575] SAFIs in order to make them applicable to redefines the [RFC5575bis] SAFIs in order to make them applicable to
both IPv4 and IPv6 applications. This document will further redefine both IPv4 and IPv6 applications. This document will further redefine
the SAFI 134 in order to make them applicable to L2VPN applications. the SAFI 134 in order to make them applicable to L2VPN applications.
The following changes are defined: The following changes are defined:
"SAFI 134 for dissemination of L3VPN flow specification rules" to now "SAFI 134 for dissemination of L3VPN flow specification rules" to now
be defined as "SAFI 134 for dissemination of VPN flow specification be defined as "SAFI 134 for dissemination of VPN flow specification
rules" rules"
For SAFI 134 the indication to which address family it is referring For SAFI 134 the indication to which address family it is referring
to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and
AFI=25 for L2VPN). Such modification is fully backwards compatible AFI=25 for L2VPN). Such modification is fully backwards compatible
with existing implementation and production deployments. with existing implementation and production deployments.
For SAFI 134 the indication to which address family it is referring For SAFI 134 the indication to which address family it is referring
to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and
AFI=25 for L2VPN). Such modification is fully backwards compatible AFI=25 for L2VPN). Such modification is fully backwards compatible
with existing implementation and production deployments. with existing implementation and production deployments.
skipping to change at page 4, line 14 skipping to change at page 6, line 5
For SAFI 134 the indication to which address family it is referring For SAFI 134 the indication to which address family it is referring
to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and
AFI=25 for L2VPN). Such modification is fully backwards compatible AFI=25 for L2VPN). Such modification is fully backwards compatible
with existing implementation and production deployments. with existing implementation and production deployments.
For SAFI 134 the indication to which address family it is referring For SAFI 134 the indication to which address family it is referring
to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and to will be recognized by AFI value (AFI=1 for VPNv4, AFI=2 VPNv6 and
AFI=25 for L2VPN). Such modification is fully backwards compatible AFI=25 for L2VPN). Such modification is fully backwards compatible
with existing implementation and production deployments. with existing implementation and production deployments.
3. Ethernet Flow Specification encoding in BGP INTERNET-DRAFT L2VPN Flow Spec
3. Ethernet Flow Specification encoding in BGP
The NLRI format for this address family consists of a fixed-length The NLRI format for this address family consists of a fixed-length
Route Distinguisher field (8 bytes) followed by a flow specification, Route Distinguisher field (8 bytes) followed by a flow specification,
following the encoding defined in this document. The NLRI length following the encoding defined in this document. The NLRI length
field includes both the 8 bytes of the Route Distinguisher as well as field includes both the 8 bytes of the Route Distinguisher as well as
the subsequent flow specification. the subsequent flow specification.
Flow specification rules received via this NLRI apply only to traffic Flow specification rules received via this NLRI apply only to traffic
that belongs to the VPN instance(s) into which it is imported. Flow that belongs to the VPN instance(s) into which it is imported. Flow
rules are accepted by default when received from remote PE routers. rules are accepted by default when received from remote PE routers.
Besides the component types defined in [RFC5575] and Besides the component types defined in [RFC5575bis] and
[I-D.ietf-idr-flow-spec-v6], this document specifies the following [I-D.ietf-idr-flow-spec-v6], this document specifies the following
additional component types for L2 VPN Ethernet traffic filtering: additional component types for L2 VPN Ethernet traffic filtering:
Type 14 - Ethernet Type Type 14 - Ethernet Type
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match two-octet
field. Values are encoded as 2-byte quantities. Ethernet II
Defines a list of {operation, value} pairs used to match two-octet framing defines the two-octet Ethernet Type (EtherType) field in
field. Values are encoded as 2-byte quantities. Ethernet II framing an Ethernet frame, preceded by destination and source MAC
defines the two-octet Ethernet Type (EtherType) field in an Ethernet addresses, that identifies an upper layer protocol encapsulating
frame, preceded by destination and source MAC addresses, that the frame data.
identifies an upper layer protocol encapsulating the frame data.
Type 15 - Source MAC Type 15 - Source MAC
Encoding: <type (1 octet), MAC Address length (1 octet), MAC Address> Encoding: <type (1 octet), MAC Address length (1 octet), MAC Address>
Defines the source MAC Address to match.
Type 16 - Destination MAC Defines the source MAC Address to match.
Type 16 - Destination MAC
Encoding: <type (1 octet), MAC Address length (1 octet), MAC Address> Encoding: <type (1 octet), MAC Address length (1 octet), MAC Address>
Defines the destination MAC Address to match.
Defines the destination MAC Address to match.
Type 17 - DSAP(Destination Service Access Point) in LLC Type 17 - DSAP(Destination Service Access Point) in LLC
Encoding: <type (1 octet), [op, value]+> Encoding: <type (1 octet), length (1 octet), [op, value]+>
Defines a list of {operation, value} pairs used to match the 1-octet Defines a list of {operation, value} pairs used to match the
DSAP in the 802.2 LLC (Logical Link Control Header). Values are 1-octet DSAP in the 802.2 LLC (Logical Link Control Header).
encoded as 1-byte quantities. The operation field is encoded as a Values are encoded as 1-byte quantities. The operation field is
'Numeric operator' defined in [RFC5575]. encoded as a
Type 18 - SSAP(Source Service Access Point) in LLC Type 18 - SSAP(Source Service Access Point) in LLC
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match the
1-octet SSAP in the 802.2 LLC. Values are encoded as 1-byte
quantities.
Defines a list of {operation, value} pairs used to match the 1-octet INTERNET-DRAFT L2VPN Flow Spec
SSAP in the 802.2 LLC. Values are encoded as 1-byte quantities.
Type 19 - Control field in LLC Type 19 - Control field in LLC
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match 1-octet
control field in the 802.2 LLC. Values are encoded as 1-byte
Defines a list of {operation, value} pairs used to match 1-octet quantities.
control field in the 802.2 LLC. Values are encoded as 1-byte
quantities.
Type 20 - SNAP Type 20 - SNAP
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match 5-octet
SNAP (Sub-Network Access Protocol) field. Values are encoded as
Defines a list of {operation, value} pairs used to match 5-octet SNAP 5-byte quantities.
(Sub-Network Access Protocol) field. Values are encoded as 5-byte
quantities.
Type 21 - VLAN ID Type 21 - VLAN ID
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match VLAN ID.
Values are encoded as 2-byte quantities, where the four most
Defines a list of {operation, value} pairs used to match VLAN ID. significant bits are zero and the 12 least significant bits
Values are encoded as 2-byte quantities, where the four most contain the VLAN value.
significant bits are zero and the 12 least significant bits contain
the VLAN value.
In the virtual local-area network (VLAN) stacking case, the VLAN ID In the virtual local-area network (VLAN) stacking case, the VLAN
is the outer VLAN ID. ID is the outer VLAN ID.
Type 22 - VLAN COS Type 22 - VLAN COS
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match 3-bit
VLAN COS fields [802.1Q]. Values are encoded using a single byte,
Defines a list of {operation, value} pairs used to match 3-bit VLAN where the five most significant bits are zero and the three least
COS fields [802.1Q]. Values are encoded using a single byte, where significant bits contain the VLAN COS value.
the five most significant bits are zero and the three least
significant bits contain the VLAN COS value.
In the virtual local-area network (VLAN) stacking case, the VLAN COS In the virtual local-area network (VLAN) stacking case, the VLAN
is outer VLAN COS. COS is outer VLAN COS.
Type 23 - Inner VLAN ID Type 23 - Inner VLAN ID
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> Defines a list of {operation, value} pairs used to match the inner
VLAN ID using for virtual local-area network (VLAN) stacking or Q
Defines a list of {operation, value} pairs used to match the inner in Q use. Values are encoded as 2-byte quantities, where the four
VLAN ID using for virtual local-area network (VLAN) stacking or Q in most significant bits are zero and the 12 least significant bits
Q use. Values are encoded as 2-byte quantities, where the four most contain the VLAN value.
significant bits are zero and the 12 least significant bits contain
the VLAN value.
In single VLAN case, this component type MUST NOT be used. In single VLAN case, this component type MUST NOT be used.
Type 24 - Inner VLAN COS Type 24 - Inner VLAN COS
Encoding: <type (1 octet), length (1 octet), [op, value]+>
Encoding: <type (1 octet), [op, value]+> INTERNET-DRAFT L2VPN Flow Spec
Defines a list of {operation, value} pairs used to match 3-bit inner Defines a list of {operation, value} pairs used to match 3-bit
VLAN COS fields [802.1Q] using for virtual local-area network (VLAN) inner VLAN COS fields [802.1Q] using for virtual local-area
stacking or Q in Q use. Values are encoded using a single byte, network (VLAN) stacking or Q in Q use. Values are encoded using a
where the five most significant bits are zero and the three least single byte, where the five most significant bits are zero and the
significant bits contain the VLAN COS value. three least significant bits contain the VLAN COS value.
In single VLAN case, the component type MUST not be used. In single VLAN case, the component type MUST NOT be used.
3.1. Order of Traffic Filtering Rules 3.1 Order of Traffic Filtering Rules
The original definition for the order of traffic filtering rules can The original definition for the order of traffic filtering rules can
be reused with new consideration for the MAC Address offset. As long be reused with new consideration for the MAC Address offset. As long
as the offsets are equal, the comparison is the same, retaining as the offsets are equal, the comparison is the same, retaining
longest-prefix-match semantics. If the offsets are not equal, the longest-prefix-match semantics. If the offsets are not equal, the
lowest offset has precedence, as this flow matches the most lowest offset has precedence, as this flow matches the most
significant bit. significant bit.
Pseudocode: Pseudocode:
flow_rule_L2_cmp (a, b) flow_rule_L2_cmp (a, b)
skipping to change at page 7, line 36 skipping to change at page 9, line 5
common = common =
MIN(component_length(comp1), component_length(comp2)); MIN(component_length(comp1), component_length(comp2));
cmp = memcmp(data(comp1), data(comp2), common); cmp = memcmp(data(comp1), data(comp2), common);
// not equal, lowest value has precedence // not equal, lowest value has precedence
// equal, longest string has precedence // equal, longest string has precedence
} }
} }
return EQUAL; return EQUAL;
} }
4. Ethernet Flow Specification Traffic Actions INTERNET-DRAFT L2VPN Flow Spec
4. Ethernet Flow Specification Traffic Actions
The default action for a layer 2 traffic filtering flow specification The default action for a layer 2 traffic filtering flow specification
is to accept traffic that matches that particular rule. The is to accept traffic that matches that particular rule. The
following extended community values per [RFC5575] can be used to following extended community values per [RFC5575bis] can be used to
specify particular actions in an L2 VPN network: specify particular actions in an L2 VPN network:
+--------+--------------------+--------------------------+ +--------+--------------------+--------------------------+
| type | extended community | encoding | | type | extended community | encoding |
+--------+--------------------+--------------------------+ +--------+--------------------+--------------------------+
| 0x8006 | traffic-rate | 2-byte as#, 4-byte float | | 0x8006 | traffic-rate | 2-byte as#, 4-byte float |
| 0x8007 | traffic-action | bitmask | | 0x8007 | traffic-action | bitmask |
| 0x8008 | redirect | 6-byte Route Target | | 0x8008 | redirect | 6-byte Route Target |
| 0x8009 | traffic-marking | DSCP value | | 0x8009 | traffic-marking | DSCP value |
+--------+--------------------+--------------------------+ +--------+--------------------+--------------------------+
Redirect: The action should be redefined to allow the traffic to be Redirect: The action should be redefined to allow the traffic to be
redirected to a MAC or IP VRF routing instance that lists the redirected to a MAC or IP VRF routing instance that lists the
specified route-target in its import policy. specified route-target in its import policy.
Besides the above extended communities, this document also proposes Besides the above extended communities, this document also specifies
the following BGP extended communities specifications for Ethernet the following BGP extended communities for Ethernet flows to extend
flow to extend [RFC5575]: [RFC5575bis]:
+--------+------------------------+--------------------------+ +--------+------------------------+--------------------------+
| type | extended community | encoding | | type | extended community | encoding |
+--------+------------------------+--------------------------+ +--------+------------------------+--------------------------+
| TBD1 | VLAN-action | bitmask | | TBD1 | VLAN-action | bitmask |
| TBD2 | TPID-action | bitmask | | TBD2 | TPID-action | bitmask |
+--------+------------------------+--------------------------+ +--------+------------------------+--------------------------+
4.1. VLAN-action 4.1 VLAN-action
The VLAN-action extended community, as shown in the diagram below, The VLAN-action extended community, as shown in the diagram below,
consists of 6 bytes that include t action Flags, two VLAN IDs, and consists of 6 bytes that include t action Flags, two VLAN IDs, and
the associating COS value. The action Flags fields are further the associating COS value. The action Flags fields are further
divided into two parts which correspond to the first action and the divided into two parts which correspond to the first action and the
second action respectively, bit 0 to bit 7 give the first action second action respectively. Bit 0 to bit 7 give the first action
while bit 8 to bit 15 give the second action. The bits of PO, PU, while bit 8 to bit 15 give the second action. The bits of PO, PU,
SW, RI and RO in each part represent the action of Pop, Push, Swap, SW, RI and RO in each part represent the action of Pop, Push, Swap,
Rewrite inner VLAN and Rewrite outer VLAN respectively. Through this Rewrite inner VLAN and Rewrite outer VLAN respectively. Through this
method, more complicated actions also can be represented in a single method, more complicated actions also can be represented in a single
VLAN-action extened community, such as SwapPop, PushSwap, etc. For VLAN-action extended community, such as SwapPop, PushSwap, etc. For
example, SwapPop action is the sequence of two actions, the first example, SwapPop action is the sequence of two actions, the first
action is Swap and the second action is Pop. action is Swap and the second action is Pop.
0 7 15 INTERNET-DRAFT L2VPN Flow Spec
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|PO1|PU1|SW1|RI1|RO1|...|PO2|PU2|SW2|RI2|RO2|...| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| VLAN ID1 |COS1 |R1| |PO1|PU1|SW1|RI1|RO1| Resv |PO2|PU2|SW2|RI2|RO2| Resv |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| VLAN ID2 |COS2 |R2| | VLAN ID1 |COS1 |R1 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| VLAN ID2 |COS2 |R2 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
PO1: Pop action. If the PO1 flag is one, it indicates the outmost PO1: Pop action. If the PO1 flag is one, it indicates the outmost
VLAN should be removed. VLAN should be removed.
PU1: Push action. If PU1 is one, it indicates VLAN ID1 will be PU1: Push action. If PU1 is one, it indicates VLAN ID1 will be
added, the associated COS is COS1. added, the associated COS is COS1.
SW1: Swap action. If the SW1 flag is one, it indicates the outer SW1: Swap action. If the SW1 flag is one, it indicates the outer
VLAN and inner VLAN should be swapped. VLAN and inner VLAN should be swapped.
PO2: Pop action. If the PO2 flag is one, it indicates the outmost PO2: Pop action. If the PO2 flag is one, it indicates the outmost
VLAN should be removed. VLAN should be removed.
PU2: Push action. If PU2 is one, it indicates VLAN ID2 will be PU2: Push action. If PU2 is one, it indicates VLAN ID2 will be
added, the associated COS is COS2. added, the associated COS is COS2.
SW2: Swap action. If the SW2 flag is one, it indicates the outer SW2: Swap action. If the SW2 flag is one, it indicates the outer
VLAN and inner VLAN should be swapped. VLAN and inner VLAN should be swapped.
RI1 and RI2: Rewrite inner VLAN action. If the RI flag is one, it RI1 and RI2: Rewrite inner VLAN action. If the RI flag is one, it
indicates the inner VLAN should be replaced by a new VLAN, the new indicates the inner VLAN should be replaced by a new VLAN where the
VLAN is VLAN ID1, the associated COS is COS1. If the VLAN ID1 is 0, new VLAN is VLAN ID1 and the associated COS is COS1. If the VLAN ID1
the action is to only modify the COS value of inner VLAN. is 0, the action is to only modify the COS value of inner VLAN.
RO1 and RO2: Rewrite outer VLAN action. If the RO flag is one, it RO1 and RO2: Rewrite outer VLAN action. If the RO flag is one, it
indicates the outer VLAN should be replaced by a new VLAN, the new indicates the outer VLAN should be replaced by a new VLAN where the
VLAN is VLAN ID2, the associated COS is COS2. If the VLAN ID2 is 0, new VLAN is VLAN ID and the associated COS is COS2. If the VLAN ID2
the action is to only modify the COS value of outer VLAN. is 0, the action is to only modify the COS value of outer VLAN.
R1 and R2: Reserved for future use. MUST be sent as zero and ignored Resv, R1, and R2: Reserved for future use. MUST be sent as zero and
on receipt. ignored on receipt.
Giving an example, if the action of PUSH Inner VLAN 10 with COS value Giving an example below: if the action of PUSH Inner VLAN 10 with COS
5 and Outer VLAN 20 with COS value 6 is needed, the format of the value 5 and Outer VLAN 20 with COS value 6 is needed, the format of
VLAN-action extended community is as follows: the VLAN-action extended community is as follows:
0 7 15 INTERNET-DRAFT L2VPN Flow Spec
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|0 |1 |0 |0 |0 |0 |0 |0 |0 |1 |0 |0 |0 |0 |0 |0 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 10 |1 |0 |1 |0 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 20 |1 |1 |0 |0 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
4.2. TPID-action 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|0 |1 |0 |0 |0 |0 |0 |0 |0 |1 |0 |0 |0 |0 |0 |0 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 10 |1 |0 |1 |0 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 20 |1 |1 |0 |0 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
4.2 TPID-action
The TPID-action extended community consists of 6 bytes which includes The TPID-action extended community consists of 6 bytes which includes
the fields of action Flags, TPID1 and TPID2. the fields of action Flags, TPID1 and TPID2.
0 15 0 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|TI|TO| Resv | |TI|TO| Resv |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TP ID1 | | TP ID1 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TP ID2 | | TP ID2 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
TI: Mapping inner TP ID action. If the TI flag is one, it indicates TI: Mapping inner TP ID action. If the TI flag is one, it indicates
the inner TP ID should be replaced by a new TP ID, the new TP ID is the inner TP ID should be replaced by a new TP ID, the new TP ID is
TP ID1. TP ID1.
TO: Mapping outer TP ID action. If the TO flag is one, it indicates TO: Mapping outer TP ID action. If the TO flag is one, it indicates
the outer TP ID should be replaced by a new TP ID, the new TP ID is the outer TP ID should be replaced by a new TP ID, the new TP ID is
TP ID2. TP ID2.
Resv: Reserved for future use. MUST be sent as zero and ignored on Resv: Reserved for future use. MUST be sent as zero and ignored on
receipt. receipt.
5. IANA Considerations INTERNET-DRAFT L2VPN Flow Spec
IANA is requested to change the description for SAFI 134 [RFC5575] 5. IANA Considerations
[RFC5575] to read as follows more general description and to change
the reference for it to [this document]:
134 VPN dissemination of flow specification rules IANA is requested to change the description for SAFI 134 [RFC5575bis]
to read as follows more general description and to change the
reference for it to [this document]:
134 VPN dissemination of flow specification rules
IANA is requested to allocate 11 new values in the Flow-Spec IANA is requested to allocate 11 new values in the Flow-Spec
Component Type registry as follows: Component Type registry as follows:
+--------+-------------------------------+--------------------------+ +--------+-------------------------------+--------------------------+
| type | RFC or Draft | discription | | type | RFC or Draft | discription |
+--------+-------------------------------+--------------------------+ +--------+-------------------------------+--------------------------+
| 14 |This draft | Ethernet Type | | 14 |This draft | Ethernet Type |
| 15 |This draft | Source MAC | | 15 |This draft | Source MAC |
| 16 |This draft | Destination MAC | | 16 |This draft | Destination MAC |
skipping to change at page 11, line 4 skipping to change at page 12, line 33
| 16 |This draft | Destination MAC | | 16 |This draft | Destination MAC |
| 17 |This draft | DSAP in LLC | | 17 |This draft | DSAP in LLC |
| 18 |This draft | SSAP in LLC | | 18 |This draft | SSAP in LLC |
| 19 |This draft | Control field in LLC | | 19 |This draft | Control field in LLC |
| 20 |This draft | SNAP | | 20 |This draft | SNAP |
| 21 |This draft | VLAN ID | | 21 |This draft | VLAN ID |
| 22 |This draft | VLAN COS | | 22 |This draft | VLAN COS |
| 23 |This draft | Inner VLAN ID | | 23 |This draft | Inner VLAN ID |
| 24 |This draft | Inner VLAN COS | | 24 |This draft | Inner VLAN COS |
+--------+-------------------------------+--------------------------+ +--------+-------------------------------+--------------------------+
IANA is requested to update the reference for the following IANA is requested to update the reference for the following
assignment in the "BGP Extended Communities Type - extended, assignment in the "BGP Extended Communities Type - extended,
transitive" registry: transitive" registry:
Type value Name Reference Type value Name Reference
---------- --------------------------- ---------------
---------- ---------------------------------------- --------- 0x080A Flow spec VLAN action [this document]
0x080B Flow spec TPID action [this document]
0x080A Flow spec VLAN action [this document]
0x080B Flow spec TPID action [this document] INTERNET-DRAFT L2VPN Flow Spec
6. Security Considerations 6. Security Considerations
No new security issues are introduced to the BGP protocol by this No new security issues are introduced to the BGP protocol by this
specification. specification.
7. Acknowledgements 7. Acknowledgements
The authors wish to acknowledge the important contributions of Hannes The authors wish to acknowledge the important contributions of Hannes
Gredler, Xiaohu Xu, Zhenbin Li, Lucy Yong and Feng Dong. Gredler, Xiaohu Xu, Zhenbin Li, Lucy Yong, and Feng Dong.
8. Contributors 8. Contributors
Qiandeng Liang Qiandeng Liang
Huawei Technologies Huawei Technologies
101 Software Avenue, Yuhuatai District 101 Software Avenue, Yuhuatai District
Nanjing 210012 Nanjing 210012
China China
Email: liangqiandeng@huawei.com Email: liangqiandeng@huawei.com
9. References INTERNET-DRAFT L2VPN Flow Spec
9.1. Normative References Normative References
[I-D.ietf-idr-flow-spec-v6] [I-D.ietf-idr-flow-spec-v6] McPherson, D., Raszuk, R., Pithawala, B.,
McPherson, D., Raszuk, R., Pithawala, B., akarch@cisco.com, a., and S. Hares, "Dissemination of Flow
akarch@cisco.com, a., and S. Hares, "Dissemination of Flow Specification Rules for IPv6", draft-ietf-idr-flow-spec-
Specification Rules for IPv6", draft-ietf-idr-flow-spec- v6-09 (work in progress), November 2017.
v6-09 (work in progress), November 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC5575bis] Hares, S., Loibl, C., Raszuk, R., McPherson, D., Bacher,
Requirement Levels", BCP 14, RFC 2119, M., "Dissemination of Flow Specification Rules", draft-
DOI 10.17487/RFC2119, March 1997, ietf-idr-rfc5575bis-14, Work in progress, January 2019.
<https://www.rfc-editor.org/info/rfc2119>.
[RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
LAN Service (VPLS) Using BGP for Auto-Discovery and Requirement Levels", BCP 14, RFC 2119, DOI
Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007, 10.17487/RFC2119, March 1997, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc4761>. editor.org/info/rfc2119>.
[RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private [RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private LAN
LAN Service (VPLS) Using Label Distribution Protocol (LDP) Service (VPLS) Using BGP for Auto-Discovery and Signaling",
Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007, RFC 4761, DOI 10.17487/RFC4761, January 2007,
<https://www.rfc-editor.org/info/rfc4762>. <https://www.rfc-editor.org/info/rfc4761>.
[RFC5575] Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J., [RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private
and D. McPherson, "Dissemination of Flow Specification LAN Service (VPLS) Using Label Distribution Protocol (LDP)
Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009, Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007,
<https://www.rfc-editor.org/info/rfc5575>. <https://www.rfc-editor.org/info/rfc4762>.
[RFC6074] Rosen, E., Davie, B., Radoaca, V., and W. Luo, [RFC6074] Rosen, E., Davie, B., Radoaca, V., and W. Luo,
"Provisioning, Auto-Discovery, and Signaling in Layer 2 "Provisioning, Auto-Discovery, and Signaling in Layer 2
Virtual Private Networks (L2VPNs)", RFC 6074, Virtual Private Networks (L2VPNs)", RFC 6074, DOI
DOI 10.17487/RFC6074, January 2011, 10.17487/RFC6074, January 2011, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc6074>. editor.org/info/rfc6074>.
9.2. Informative References [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119
Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May
2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., Informative References
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
2015, <https://www.rfc-editor.org/info/rfc7432>. Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <https://www.rfc-editor.org/info/rfc7432>.
INTERNET-DRAFT L2VPN Flow Spec
Authors' Addresses Authors' Addresses
Weiguo Hao Weiguo Hao
Huawei Huawei Technologies
101 Software Avenue, 101 Software Avenue,
Nanjing 210012 Nanjing 210012
China China
Email: haoweiguo@huawei.com Email: haoweiguo@huawei.com
Donald E. Eastlake, 3rd
Huawei
155 Beaver Street
Milford, MA 01757
USA
Email: d3e3e3@gmail.com Donald E. Eastlake, 3rd
Huawei Technologies
1424 Pro Shop Court
Davenport, FL 33896
USA
James Uttaro Email: d3e3e3@gmail.com
AT&T
Email: uttaro@att.com James Uttaro
AT&T
Stephane Litkowski Email: uttaro@att.com
Orange Business Service
Email: stephane.litkowski@orange.com Stephane Litkowski
Orange Business Service
Shunwan Zhuang Email: stephane.litkowski@orange.com
Huawei
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: zhuangshunwan@huawei.com Shunwan Zhuang
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: zhuangshunwan@huawei.com
INTERNET-DRAFT L2VPN Flow Spec
Copyright, Disclaimer, and Additional IPR Provisions
Copyright (c) 2019 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.
 End of changes. 104 change blocks. 
275 lines changed or deleted 287 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/