Internet DRAFT - draft-jing-sfc-flow-release-notify
draft-jing-sfc-flow-release-notify
SFC WG W. Jing
Internet-Draft C. Wang
Intended status: Standards Track ZTE Corporation
Expires: May 3, 2017 C. FONTAINE
Qosmos
October 30, 2016
Flow Release Notify
draft-jing-sfc-flow-release-notify-01
Abstract
Service function chain is the definition of an ordered set of service
functions. After instantiated, the service function path is created
and the classified traffic is steered through the corresponding
service function path and then forwarded to the final destination.
SFs and SFC Proxies do not know the termination of a service flow.
This document describes a method to notify the SFs and SFC Proxies
the termination of a service flow.
When one service flow goes through the SFP, there may create some
states in some SFs or SFC Proxies. However, when the service flow
terminates, the SFs and SFC Proxies are unaware of that and maintain
the states as well.This document describes a method to notify the SFs
and SFC Proxies the termination of a service flow and release the
resources occupied by the flow.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
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."
This Internet-Draft will expire on May 3, 2017.
Jing, et al. Expires May 3, 2017 [Page 1]
Internet-Draft Flow Release Notify October 2016
Copyright Notice
Copyright (c) 2016 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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Convention and Terminology . . . . . . . . . . . . . . . . . 3
3. Defination of Flow Termination Message . . . . . . . . . . . 3
3.1. Data Plane Approach . . . . . . . . . . . . . . . . . . . 3
3.2. Control Plane Approach . . . . . . . . . . . . . . . . . 4
4. Controller Behavior . . . . . . . . . . . . . . . . . . . . . 5
5. Classifier Behavior . . . . . . . . . . . . . . . . . . . . . 5
6. Service Function Forwarder behavior . . . . . . . . . . . . . 6
7. SFC Proxy Behavior . . . . . . . . . . . . . . . . . . . . . 6
8. SFC-aware Service Function Behavior . . . . . . . . . . . . . 6
9. Security Considerations . . . . . . . . . . . . . . . . . . . 6
10. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 7
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 7
12.1. Normative References . . . . . . . . . . . . . . . . . . 7
12.2. Informative References . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
Service function chain is the definition of an ordered set of service
functions. After instantiated, the service function path is created
and the classified traffic is steered through the corresponding
service function path and then forwarded to the final destination.
SFs and SFC Proxies allocate resources (e.g. memory) for service flow
in order to process the packets of service flow correctly.
Typically, in current SFC deployment, there are many SFC-unaware SFs
which need SFC Proxies to assist them to fulfill SFC forwarding.
When service flow goes through these SFC Proxies, there are states
created which cost resources to assist the return traffic from the
Jing, et al. Expires May 3, 2017 [Page 2]
Internet-Draft Flow Release Notify October 2016
SFC-unaware SFs to retrieve the original NSH encapsulation. When a
service flow terminates, the corresponding states/resources should be
cleaned up. Unfortunately, SFs and SFC Proxies do not know the
termination of a service flow. As a result of that, they cannot
release the resources immediately. Maybe one solution is to set
lifetime for these states, but how long the lifetime should be set is
an issue as well as what if the lifetime is asynchronous between
different SFs and SFC Proxies.
This document tries to disclose this issue and describes a
synchronous method to notify the SFC-aware SFs and SFC Proxies the
termination of a service flow and then release the resource occupied
by the service flow synchronously.
2. Convention and Terminology
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 [RFC2119].
The terms are all defined in rfc7665 and [I-D.ietf-sfc-nsh].
3. Defination of Flow Termination Message
A message with Flow Termination Indicator is treated as flow
termination message.
And also, the termination flow's identifier is also included in flow
termination message. As what is the flow's identifier and how to
define flow's identifier depends on specific scenarioes. for example,
flow's identifier could be 5-tuple in the packet, or the Flow ID, or
the session ID, or something else which exclusively identify the
flow.
When SFC components receive flow termination message, they MUST
abstract the flow's identifier field in the receiving message and
release the corresponding resource occupied by the flow.
As how SFC components receive the flow termination message, there
have different approaches, including data plane approaches and
control plane approaches. Here elaborates these approaches as
follow.
3.1. Data Plane Approach
Here flow termination message is a NSH encapsulated message. It is
generated by Classifier, and transported along the SFP and ended at
Jing, et al. Expires May 3, 2017 [Page 3]
Internet-Draft Flow Release Notify October 2016
the end of SFP. An example of flow termination message is as figure
1.
+-------------------------------------------------------------+
| NSH Payload |
| (flow's identifier) |
+-------------------------------------------------------------+
| |
| Network Service Header (NSH) with FTI |
+-------------------------------------------------------------+
| |
| L4 UDP Header |
+-------------------------------------------------------------+
| |
| L3 (IPv4|IPv6) Header |
+-------------------------------------------------------------+
| |
| L2 (Ethernet) Header |
+-------------------------------------------------------------+
Figure 1: Example of Flow Termination Message
The flow's identifier field in the NSH Payload of the flow
termination message should have sufficient information to uniquely
identify the flow that is terminated. Specifically, IP five tuples
is a typical flow's identifier.
The FTI means Flow Termination Indicator. It is encapsulted in NSH.
There are several solutions to carry Flow Termination Indicator to
indicate this message is an flow termination message, such as:
1)use a reserved bit in the Base header;
2)use a bit in the mandatory context header when MD type=1;
3)specify a Variable Context Headers when MD type=2.
3.2. Control Plane Approach
One of the control plane approaches here is that SFC controller
should assist in triggering flow termination message through
interfaces defined in [I-D.ietf-sfc-control-plane] to nofify SFC
components to release the resource.
Another control plane approach here is that SFC Classifier triggers a
new SFC OAM message as flow termination message along the SFP.
Jing, et al. Expires May 3, 2017 [Page 4]
Internet-Draft Flow Release Notify October 2016
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver|O|C|R|R|R|R|R|R| Length | MD-type=0x1 | OAM Protocol |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Service Path ID | Service Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mandatory Context Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mandatory Context Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mandatory Context Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mandatory Context Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FTI Msg Type | Length | Flow's Identifier(available |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: SFC OAM message as flow termination message
FTI Msg Type: TBD.
Len: depends on the length of Flow's Identifier.
Flow's Identifier: idenitifer the flow uniquely.
4. Controller Behavior
Under SFC controller scenario, if controller acquires the termination
of flow, it may generate flow termination message and send it to the
SFC components related to the flow. How the controller detects the
termination of flow is out of the scope of this document.
5. Classifier Behavior
Under other scenarioes, if classifier acquires the termination of
flow, it may generate flow termination message and send it to the SFP
of the flow. How the classifier detects the termination of flow is
out of the scope of this document.
Here are some examples of how to detect the termination of flow:
1)in case of mobile network, classifier can be collocated with PGW.
As per 3GPP specification, PGW has interfaces like S5/S8, Gx,Gy,S6b.
All interfaces listed above can be used to detect the termination of
flow. Specifically, Gx interface can be used by PGW to get online/
offline information from PCRF.
Jing, et al. Expires May 3, 2017 [Page 5]
Internet-Draft Flow Release Notify October 2016
2)Classifier may have DPI function, which can observe the TCP FIN
packet which is termination signal of TCP flow. And so on.
6. Service Function Forwarder behavior
SFF treats flow termination message as normal traffic in service
chain and forwards it according to SPI/SI.
But, unders some circumstances, there may be some states maintained
in the SFFs related to the flow. then, these states need to be
released as well if such kind of SFFs receive flow termination
message.
7. SFC Proxy Behavior
The proxy accepts packets from the SFF on behalf of the SF. It
removes the SFC encapsulation, and then uses a local attachment
circuit to deliver packets to SFC-unaware SFs. It also receives
packets back from the SF, reapplies the SFC encapsulation, and
returns them to the SFF for processing along the service function
path. refer to [RFC 7665]
Thus, it is necessary for SFC proxy to maintain a state for each
flow. When traffic is returned from the SFC-unaware SFs, SFC proxy
reapplies the SFC encapsulation according to the encapsulation
information stored in the states table. Such states consume a lot of
memory, because millions of states would be maintained.
When SFC Proxy receives flow termination message, it should take
action to release the resources of the flow, which is identified by
the flow's identifier abstracted in the flow termination message.
And then decrements service index and returns the flow termination
message back to SFF.
8. SFC-aware Service Function Behavior
When SFC-aware SF receives flow termination message, it should take
action to release the resources occupied the flow, which is
identified by the flow's identifier. And then decrements service
index and returns the flow termination message back to SFF.
9. Security Considerations
TBD
Jing, et al. Expires May 3, 2017 [Page 6]
Internet-Draft Flow Release Notify October 2016
10. Acknowledgement
The editors would like to thank David Dolson for a thorough review
and useful comments.
11. IANA Considerations
TBD
12. References
12.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function
Chaining (SFC) Architecture", RFC 7665,
DOI 10.17487/RFC7665, October 2015,
<http://www.rfc-editor.org/info/rfc7665>.
12.2. Informative References
[I-D.ietf-sfc-control-plane]
Boucadair, M., "Service Function Chaining (SFC) Control
Plane Components & Requirements", draft-ietf-sfc-control-
plane-08 (work in progress), October 2016.
[I-D.ietf-sfc-nsh]
Quinn, P. and U. Elzur, "Network Service Header", draft-
ietf-sfc-nsh-10 (work in progress), September 2016.
Authors' Addresses
WeiDong Jing
ZTE Corporation
No.6 Huashen Rd, Yuhuatai District
Nanjing
China
Email: jing.weidong1@zte.com.cn
Jing, et al. Expires May 3, 2017 [Page 7]
Internet-Draft Flow Release Notify October 2016
Cui Wang
ZTE Corporation
No.50 Software Avenue, Yuhuatai District
Nanjing
China
Email: wang.cui1@zte.com.cn
Christophe FONTAINE
Qosmos
8 rue Bernard-Buffet
75017 Paris
France
Email: christophe.fontaine@qosmos.com
Jing, et al. Expires May 3, 2017 [Page 8]