Internet DRAFT - draft-allan-fec-cv-overview
draft-allan-fec-cv-overview
Internet Draft David Allan
Document: draft-allan-fec-cv-overview-01.txt Nortel Networks
Category: Informational October 2003
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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.
Copyright Notice
Copyright(C) The Internet Society (2003). All Rights Reserved.
Abstract
This Internet Draft provides an overview of the FEC-CV probe
[Y17FEC-CV] proposed as an extension to the Y.1711 protocol. This is
a private informational submission. Those interested in more detail
are directed to the ITU-T recommendations and SG13/Q3 living lists.
This has been updated from the previous version to include material
incorporated at the July SG13/Q3 meeting.
Sub-IP ID Summary
[to be removed when published]
WHERE DOES IT FIT IN THE PICTURE OF THE SUB-IP WORK
Fits in the MPLS, PWE and PPVPN boxes.
WHY IS IT TARGETED AT THESE WGs
Allan Expires October 2003 Page 1
Overview of the FEC-CV proposed extension to the Y.1711 protocol
This draft provides an overview of the Y.17FEC-CV PDU and suggests
extensions whereby it can be applied to MPLS, PWs, PSNs and VPNs.
1. Introduction
This draft provides an overview of the proposed FEC_CV extension to
Y.1711. It is not normative and only represents a technical
approach proposed to SG13/Q3 and currently documented as draft
recommendation Y.17fec-cv [Y17FEC-CV]. The body of the document
provides a functional overview, while the appendicies provide a
short tutorial on bloom filters and the proposed PDU and coding
rules for the FEC-CV probe message.
2. FEC-CV Overview
Proposed and "provisionally agreed" for future enhancement to
Y.1711 is the FEC-CV PDU. FEC-CV permits a combination of data
plane misbranching defects and verification of the control plane
against the data plane to be combined in a single lightweight PDU.
FEC-CV employs a fixed length encoding to permit configuration
information elements bound to an LSP, (or for that matter, any
tunnel type) to be encoded as a 128 bit "Bloom filter"
[BLOOM1][BLOOM2]. This functions as a verifiable "fingerprint" of
LSP configuration and connectivity and typically allows a single
transaction sent from the ingress to the egress to verify all
configuration bound to an LSP is synchronized between the LSP end-
points. This would include but is not limited to:
- FECs bound to an LSP created via LDP
- VPN RTs and RDs
- PW-FECs
- tunnel I.D.s and LSP I.D.s for TE trunks
Multiple tokens can be encoded in the fixed length bloom filter so
that a single FEC-CV PDU can verify the control plane aspects of an
LSP that carries multiple FECs without any incremental 'per-
message' processing. A practical limit is 10 FEC elements per LSP
with the currently proposed encoding rules. Compliant LSRs would be
expected to offer multiple labels when more than 10 FECs are
required.
Bloom Filters have significantly different properties when compared
to a simple digest or checksum that makes it uniquely suited as a
mechanism for conveying information for the purpose of verifying
MPLS FECs. The principal property is that it allows comparisons to
be performed between sets of information tokens. Interested readers
are directed to appendix 'A' for a short tutorial.
A high level view of the approach to using the bloom filters is
that complexity in generating the bloom filters is traded for
simplicity in subsequent repeated processing of the generated
filters. When the LSP is established, nodes capable of performing
filter processing compute bloom filters to associate with the LSP.
Allan Expires October 2003 Page 2
Overview of the FEC-CV proposed extension to the Y.1711 protocol
The LSP ingress(es) periodically will send a copy of the current
FEC filter to the egress via the LSP in a FEC-CV PDU. The rate of
FEC-CV insertion is unspecified, the proposed recommendation
suggests this should be configurable over a broad range (1 sec to
one minute intervals). Receipt of the FEC-CV probe permits the
egress (and any intermediate systems capable of inspecting the
probe) to perform a simple boolean test to simultaneously determine
that:
i) The configuration of tunnel at the ingress originating the
probe corresponds to or is a reasonable subset of that offered
by the egress for the tunnel.
ii) The tunnel connectivity is correct (no misbranching).
The output of the test is a simple pass/fail indication and the PDU
carries sufficient information to facilitate subsequent fault
diagnosis when a problem is detected. This is in the form of the
TTSI which identifies the LSR originating the probe and access
point ID.
This can be used as a "stateless" test in which the egress (or
intermediate nodes) simply verifies that any probes received are
"reasonable" and flags any exceptions to management. This would
complement normal link and node failure detection mechanisms by
detecting faults not caught by other means.
The egress may also choose to track availability per ingress by
maintaining per ingress state (MP2P case) or via direct association
of availability state with the LSP, PW or tunnel (P2P case) however
this does lead to more complex implementation and alarm management
issues. Some of which can be addressed by having the egress
correlate failures with the routing system.
The approach taken in specifying the FEC-CV PDU decouples the
definition and implementation of probe handling from the definition
of application specific configuration elements (typically FECs or
VPN prefixes) that are verified. Future MPLS or other tunnel
applications may be accommodated via filter coding rules that
require no modifications to the FEC-CV PDU or handling. This
permits ubiquitous deployment of misbranching detection to be
deployed which addresses key carrier concerns [REQUIRE].
FEC-CV makes no special provisions for ECMP in the PDU design. It
is recommended that LSRs implementing ECMP treat the set of
downstream paths as LSP ingresses and periodically insert FEC-CV
probes into each downstream path to extend misbranching detection
to all ECMP path permutations. This avoids the redundant and
overlapping testing that attempting to exercise all permutations
from every probe origin would entail.
Allan Expires October 2003 Page 3
Overview of the FEC-CV proposed extension to the Y.1711 protocol
3. Security Considerations
Y.1711 and FEC-CV in particular is designed to be sufficiently
simple that abuse for DOS attacks via volume of messaging should be
difficult. However employment of Y.1711 in this application does
generally assume trusted tunnel end points as otherwise spurious
verification information may be inserted into the tunnel. This may
causes false indication of mis-configuration or mis-direction of
traffic.
For VPN and PW applications, unintended security breaches caused by
failure to synchronize configuration, control plane problems, or
data plane mis-forwarding can be detected using FEC-CV in just
about all instantiations of tunnel applications.
4. Summary
FEC-CV provides a lightweight, application agnostic mechanism to
simultaneously verify both correct configuration and connectivity
for LSPs, PWs or VPN links. Support for future applications only
requires the definition of filter coding rules. No actual protocol
modifications or modifications to probe handling need be defined.
This effectively makes implementations "future proof" and permits
scalable verification to be incorporated into applications.
FEC-CV complements existing link and node failure detection
mechanisms by exclusively focusing on path misdirection problems.
FEC-CV is easily adapted to ECMP implementations by treating the
set of NHLFEs as LSP ingresses.
5. Intellectual Property Considerations
Nortel Networks may pursue, or is pursuing, patent protection on
technology described in this document. If this document becomes, in
part or whole, an IETF Standard, and if such patented technology is
essential for practice of an IETF Standard incorporating in whole or
part this document, Nortel Networks would be willing to make
available nonexclusive licenses on fair, reasonable, and non-
discriminatory terms and conditions, to such patented technology to
the extent it is essential to practice such IETF standard.
6. Acknowledgements
My thanks to Jerome Chiabaut, Elwyn Davies, Greg Wright and Dean
Frohwerk for their assistance and constructive input.
7. References
[BLOOM1] Bloom, B., "Space/Time Trade Offs in Hash Coding with
Allowable Errors", Communications of the ACM, Vol. 13,
No. 7, July 1970
[BLOOM2] Ripeanu, M., Iamnitchi, A., "Bloom Filters - Short
Allan Expires October 2003 Page 4
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Tutorial", www.cs.uchicago.edu/~matei/PAPERS/bf.doc
[CR-LDP] Jamoussi et.al.,"Constraint Based LSP Setup using LDP",
IETF RFC 3212, January 2002
[LDP] Andersson et.al., "LDP Specification", IETF RFC 3036,
January 2001
[LSP-PING] Pan et.al. "Detecting MPLS Data Plane Failures",
draft-ietf-mpls-lsp-ping-03, IETF work in progress,
June 2003
[Y1711] ITU-T Recommendation Y.1711, "OAM mechanism for MPLS
networks", November 2002
[Y17FEC-CV] ITU-T draft Recommendation Y.17fec-cv, "Misbranching
Detection in MPLS Networks", July 2003
[RFC 2547] Rosen et.al. "BGP/MPLS VPNs", IETF Internet Draft,
draft-ietf-ppvpn-rfc2547bis-02.txt, July 2002
[REQUIRE] Nadeau et.al., "OAM Requirements for MPLS Networks",
IETF Internet Draft, draft-ietf-mpls-oam-requirements-
01.txt, June 2003
8. Author's Address
David Allan
Nortel Networks Phone: 1-613-763-6362
3500 Carling Ave. Email: dallan@nortelnetworks.com
Ottawa, Ontario, CANADA
9. Full Copyright Statement
"Copyright (C) The Internet Society (2003). Except as set forth
below, authors retain all their rights.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
rights in submissions defined in the IETF Standards Process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
Allan Expires October 2003 Page 5
Overview of the FEC-CV proposed extension to the Y.1711 protocol
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/S HE
REPRESENTS (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
Allan Expires October 2003 Page 6
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Appendix 'A': Short Tutorial on Bloom Filters
A Bloom Filter is a form of knowledge digest. It is an unstructured
bit array of fixed length. The actual length is fixed as a function
of filter design. Typical applications for a Bloom Filter to date
are as a digest of knowledge for information caches for
communication to cache proxies, and dictionary search pre-
processing in word processors.
TO create a Bloom Filter, one uses hashing techniques to condense a
representation of a token of information (e.g. prefix/mask) into
some number of bits in the bit array where the relative bit
positions are significant.
There is a given probability that more than one token will hash to
the same value for any one of the bits (bit collisions) but as more
bits are used to represent a token, the probability that another
token hashes to the exact same set of bits diminishes rapidly. When
multiple tokens are encoded in a bit array (simply via logical OR
of the individual filter representations), the probability of
collision goes up (one token hashing to a subset of the bits set in
the filter) but can still be bounded within a useful range via
appropriate filter design for the application. Because the
generation of the filter is lossy in the inclusive direction (due
to the ORing of information as tokens are added to the filter), a
test that shows a requisite bit for a token to not be in the filter
is still an authoritative indication of non-membership.
A simple example of bloom filter operation is:
Filter engineering: 16 bit filter using two bits per FEC.
"FEC A" hashes to bits 2 and 9 0000001000000100B
"FEC B" hashes to bits 11 and 15 1000100000000000B
"FEC C" hashes to bits 2 and 13 0010000000000100B
"Set ABC" = A OR B OR C 1010101000000100B
"FEC D" hashes to bits 11 and 14 0100100000000000B
AND NOT "Set ABC" 0101010111111011B
is non zero 0100000000000000B
So "FEC D" is absolutely NOT in "Set ABC"
"FECs AB" hash to bits 2,9,11 and 15 1000101000000100B
AND NOT "Set ABC" 0101010111111011B
is zero 0000000000000000B
So "FECs AB" are in "set ABC"
"FEC E" hashes to bits 9 and 13 0010001000000000B
AND NOT "Set ABC" 0101010111111011B
is zero, 0000000000000000B
"FEC E" generates a "false positive"
Allan Expires October 2003 Page 7
Overview of the FEC-CV proposed extension to the Y.1711 protocol
This has application as a means of representing a set of FECs that
permits a simple boolean operation on two filters to compare sets
of information and produce a "pass/fail" result. The ingress LSRs
will create a filter representing the set of FECs associated with
the LSP and instantiated in the FTN. This will correspond to, or be
a subset of, the set of FECs advertised by the egress for the
termination of the LSP. All bits set in the ingress filter should
also be present in the egress filter.
Allan Expires October 2003 Page 8
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Appendix 'B' The FEC-CV PDU
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Function (=7) | Reserved (=0) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| |
| TTSI |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| FEC Filter |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved (=0) | BIP 16 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
TTSI - Trail termination source identifier, combination
of originating LSR ID and locally admininsted
access point ID.
FEC Filter - is a 16 byte bloom filter that encodes the
functional description of the LSP (see appendix
'D' and 'E').
BIP16 - G(x)=x16+1 polynomial of the FEC-CV PDU (exact
details specified in Y.1711)
Allan Expires October 2003 Page 9
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Appendix 'C' Filter Processing Rules
Egress processing falls into one of two styles.
1) Reasonable subset
The egress will AND the received ingress filter with the logical
inverse of the egress filter. A non-zero result indicates a
dFEC_Mismatch defect. If the egress has withdrawn a FEC element, it
may tolerate a mismatch for an unspecified amount of time, and it
MAY maintain a second filter containing the cumulative set of FEC
elements offered for the LSP. If ANDing the received filter with
the logical inverse of the cumulative filter yields a non-zero
result, it indicates that the mismatch is not related to the
withdrawl of the FEC element and dFEC_Mismerge defect state may be
entered immediately.
2) Exact Match
The egress will directly compare the received ingress filter with
the egress filter. A not-equal result indicates either
dFEC_Mismatch defect or a recent change has not propagated to the
ingress. If the egress has changed the FEC filter, it may tolerate
a mismatch for an unspecified amount of time. It MAY further
perform filter testing to determine if the ingress filter is a
subset of the current egress filter or cumulative egress filter in
order to more quickly ascertain whether a genuine mismatch has
occurred or is simply an artifact of hysteresis in the control
plane. it indicates that the mismatch is not related to the
withdrawl of the FEC element and dFEC_Mismatch defect state may be
entered immediately.
Allan Expires October 2003 Page 10
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Appendix 'D': FEC-CV Encoding Procedure
A filter entry is a filter representation of a single token of
information. A filter entry is specified as an application specific
number of filter offsets that correspond to specific bits in the
FEC filter.
Filter offsets are expressed as a single value in the range 0-127.
Each filter offset represents a single bit in the 16 byte FEC
filter. The upper 4 bits of the offset constitute an octet offset
from the first byte of the filter, and the lower 3 bits of the
offset constitute a bit offset in the octet, zero referring to the
LS-Bit and 7 referring to the MS-Bit. A filter is initially zeroed,
and the bit corresponding to each filter offset is ORed with the
filter.
Generalized coding:
Coding rules are based primarily on the maximum number of filter
entries that the filter is expected to carry for a given
application.
Filter offsets are generated from the CRC32 result. Generalized
rules are provided for the generation of 2, 3, 4 and 5 filter
offsets from CRC32. Coding rules are designed to (in general)
preserve the hamming distance of the CRC via inclusion of the
majority of information.
Although not used in this Recommendation, specification of two
offsets is included for applications that may require the ability
to encode greater than 16 Filter Entries per LSP.
Two offsets
Two filter offsets are generated by:
1) Condensing each octet into a 7 bit value by XORing bit 8 into
bit 7 and zeroing bit 8.
2) XORing together octets zero and one, and octets two and three to
produce two 7 bit values.
Three offsets
Three filter offsets are generated by segmenting the CRC32 into 3
10 bit entities, then XORing the 7th,8th and 9th bits with the 4th,
5th and 6th respectively. The two most significant bits are unused.
Four filter offsets
Four filter offsets are generated via taking the lower 7 bits of
each octet in the CRC32 and XORing the 8th bit of each octet with
the 7th.
Allan Expires October 2003 Page 11
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Five filter offsets
Five filter offsets are generated by segmenting the CRC32 into four
7 bit offsets and the remaining lower 4 bits are used as the 4 LS-
bits of the 5th offset. The CRC32 is then segmented on 9 bit
boundaries parity performed on each to compute the upper 3 bits of
the 5th offset.
Allan Expires October 2003 Page 12
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Appendix 'E': FEC-CV Application Specific Encoding
E.1 Coding Rules for LDP [RFC3036] LSPs
Coding Rules for ingress
Each FEC element (as encoded per RFC 3036 [4] section 3.4.1) that
is instantiated in the FTN table for the LSP is encoded as a filter
entry consisting of three filter offsets.
Coding Rules for the egress and intermediate nodes
Each FEC element (as encoded per RFC 3036 section 3.4.1) that is
offered to LDP peers for the LSP is encoded as a filter entry
consisting of three (3) filter offsets.
Filter processing
The egress and intermediate nodes will perform "reasonable subset"
filter processing.
Limitations
Using these coding rules, an upper limit of 10 FEC elements in a
FEC filter is required to ensure > 99.9% probability of detecting
all misbranching defects in a network supporting all of the
applications outlined in this annex.
E.2 Coding Rules for RFC 3209 (RSVP-TE) LSPs
Coding Rules for ingress
The ingress PE encodes the tunnel ID and extended tunnel ID
extracted from the session object sect 4.6.1 RFC 3209) as a filter
entry, and the LSP ID extracted from the sender template (sect
4.6.2 RFC 3209) as a filter entry. Both filter entries are composed
of 4 filter offsets. If the extended tunnel ID is zero, then the
tunnel sender address from the sender template object must be
substituted.
During reroute and bandwidth increase procedures (sect 4.3.4 of RFC
3209), the filter used contains the tunnel ID/extended tunnel ID
filter entry and the old LSP ID filter entry until the RESV message
confirming the path with the new LSP-ID is received. At this point
the ingress revises the filter to contain the tunnel ID/extended
tunnel ID filter entry and the new LSP ID filter entry.
Allan Expires October 2003 Page 13
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Coding Rules for the egress and intermediate nodes
The egress PE encodes the tunnel ID and extended tunnel ID
extracted from the session object as a filter entry, and the LSP ID
extracted from the sender template as a filter entry. If the
extended tunnel ID is zero, then the tunnel sender address from the
sender template object must be substituted.
During reroute and bandwidth increase procedure (sect 4.3.4 of RFC
3209), upon receipt of a path message with a new LSP ID, both the
old and new LSP IDs will be encoded as filter entries along with
the tunnel ID and extended tunnel ID so that the change of LSP IDs
at the probe origin does not result in an error. Upon receipt of
the Pathtear message for the old LSP ID, the filter will be
revised to only contain the current LSP ID as a filter entry.
Filter Processing
Processing nodes will perform "exact match" processing in normal
operation, and "reasonable subset" processing during reroute and
bandwidth increase procedures.
Limitations
Not applicable. The number of filter entries associated with an
RFC3209 LSP is already bounded.
Coding Rules for RFC 2547 (BGP/VPN) LSPs
Coding Rules for ingress and egress
The ingress PE encodes the BGP next hop information and each of the
RDs associated with the LSP as filter entriers consisting of three
filter offsets.
Filter Processing
Processing nodes will perform "exact match" filter processing.
Coding Rules for RFC 3212 (CR-LDP) LSPs
Coding rules for ingress intermediate, and egress LSRs
The LSP-ID (sect 4.5 RFC 3213) and each CR_LSP FEC element (sect
4.10 RFC 3212) and/or LDP FEC element Sect 3.4.1 RFC 3036) is
encoded as a filter entry consisting of 3 filter offsets.
Limitations
Using these coding rules, an upper limit of 10 FEC elements and the
LSP-ID TLV in a FEC filter is required to ensure > 99.9%
Allan Expires October 2003 Page 14
Overview of the FEC-CV proposed extension to the Y.1711 protocol
probability of detecting all misbranching defects in a network
supporting all of the applications outlined in this annex.
Allan Expires October 2003 Page 15
Overview of the FEC-CV proposed extension to the Y.1711 protocol
Appendix 'F' The CRC32 Polynomial
Existing CRC32 polynomials (designed to operate on larger input
lengths) do not offer randomization (measured via the Hamming
distance) for shorter inputs comparable to polynomials selected
specifically with the application characteristics in mind.
This polynomial has been selected because the minimum Hamming
distance is 10 for 64-bit inputs and then at least 8 for all input
lengths up to 992 bits (124 octets). By comparison, the minimum
Hamming distance of the standard Ethernet polynomial is only 8 for
64-bit inputs, drops to 7 at 92 bits (12 octets), then to 6 at 172
bits, and is only 5 above 268 bits.
The 32-bit CRC used for the generation of FEC-CV filter entries is
defined by the following generating polynomial:
G(x) = x32+x30+x28+x21+x19+x15+x12+x9+x8+x4+x3+x2+x+1
Mathematically, the CRC is defined as the sum (modulo 2) of:
1) The remainder of (x31+x30+...+x+1)xk divided (modulo 2) by the
generator polynomial, where k is the number of bits of the data
over which the CRC is calculated; and
2) The remainder of the division (modulo 2) by the generator
polynomial of the product of the data over which the CRC is
calculated, interpreted as a polynomial, multiplied by x32.
Algorithmically, the CRC is defined by the following procedure:
a) The first 32 bits of the data are complemented.
b) The k bits of the data are then considered to be the
coefficients of a polynomial M(x) of degree k-1.
c) M(x) is multiplied by x32 and divided by G(x), producing a
remainder R(x) of degree at most 31
d) The coefficients of R(x) are considered to be a 32-bit, 4-octet
sequence.