draft-ietf-forces-packet-parallelization-02.txt   draft-ietf-forces-packet-parallelization-03.txt 
Internet Engineering Task Force E. Haleplidis Internet Engineering Task Force E. Haleplidis
Internet-Draft University of Patras Internet-Draft University of Patras
Intended status: Experimental J. Halpern Intended status: Experimental J. Halpern
Expires: March 9, 2015 Ericsson Expires: April 13, 2015 Ericsson
September 5, 2014 October 10, 2014
ForCES Packet Parallelization ForCES Packet Parallelization
draft-ietf-forces-packet-parallelization-02 draft-ietf-forces-packet-parallelization-03
Abstract Abstract
Forwarding and Control Element Separation (ForCES) defines an Forwarding and Control Element Separation (ForCES) defines an
architectural framework and associated protocols to standardize architectural framework and associated protocols to standardize
information exchange between the control plane and the forwarding information exchange between the control plane and the forwarding
plane in a ForCES Network Element (ForCES NE). RFC5812 has defined plane in a ForCES Network Element (ForCES NE). RFC5812 has defined
the ForCES Model provides a formal way to represent the capabilities, the ForCES Model provides a formal way to represent the capabilities,
state, and configuration of forwarding elements within the context of state, and configuration of forwarding elements within the context of
the ForCES protocol (RFC 5810), so that control elements (CEs) can the ForCES protocol (RFC 5810), so that Control Elements (CEs) can
control the FEs accordingly. More specifically, the model describes control the Forwarding Elements (FEs) accordingly. More
the logical functions that are present in an FE, what capabilities specifically, the model describes the logical functions that are
these functions support, and how these functions are or can be present in an FE, what capabilities these functions support, and how
interconnected. these functions are or can be interconnected.
Many network devices support parallel packet processing. This Many network devices support parallel packet processing. This
document describes how ForCES can model a network device's document describes how ForCES can model a network device's
parallelization datapath. parallelization datapath.
Status of This Memo Status of This Memo
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.
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). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
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 March 9, 2015. This Internet-Draft will expire on April 13, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 49 skipping to change at page 2, line 49
4.2.1. Data Handling . . . . . . . . . . . . . . . . . . . . 13 4.2.1. Data Handling . . . . . . . . . . . . . . . . . . . . 13
4.2.2. Components . . . . . . . . . . . . . . . . . . . . . 14 4.2.2. Components . . . . . . . . . . . . . . . . . . . . . 14
4.2.3. Capabilities . . . . . . . . . . . . . . . . . . . . 14 4.2.3. Capabilities . . . . . . . . . . . . . . . . . . . . 14
4.2.4. Events . . . . . . . . . . . . . . . . . . . . . . . 14 4.2.4. Events . . . . . . . . . . . . . . . . . . . . . . . 14
4.3. CoreParallelization . . . . . . . . . . . . . . . . . . . 15 4.3. CoreParallelization . . . . . . . . . . . . . . . . . . . 15
4.3.1. Data Handling . . . . . . . . . . . . . . . . . . . . 15 4.3.1. Data Handling . . . . . . . . . . . . . . . . . . . . 15
4.3.2. Components . . . . . . . . . . . . . . . . . . . . . 15 4.3.2. Components . . . . . . . . . . . . . . . . . . . . . 15
4.3.3. Capabilities . . . . . . . . . . . . . . . . . . . . 15 4.3.3. Capabilities . . . . . . . . . . . . . . . . . . . . 15
4.3.4. Events . . . . . . . . . . . . . . . . . . . . . . . 15 4.3.4. Events . . . . . . . . . . . . . . . . . . . . . . . 15
5. XML for Parallel LFB library . . . . . . . . . . . . . . . . 16 5. XML for Parallel LFB library . . . . . . . . . . . . . . . . 16
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
7.1. LFB Class Names and LFB Class Identifiers . . . . . . . . 24 7.1. LFB Class Names and LFB Class Identifiers . . . . . . . . 24
7.2. Metadata ID . . . . . . . . . . . . . . . . . . . . . . . 25 7.2. Metadata ID . . . . . . . . . . . . . . . . . . . . . . . 25
8. Security Considerations . . . . . . . . . . . . . . . . . . . 25 8. Security Considerations . . . . . . . . . . . . . . . . . . . 25
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.1. Normative References . . . . . . . . . . . . . . . . . . 25 9.1. Normative References . . . . . . . . . . . . . . . . . . 25
9.2. Informative References . . . . . . . . . . . . . . . . . 26 9.2. Informative References . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
A lot of network devices can process packets in a parallel manner. A lot of network devices can process packets in a parallel manner.
The ForCES Model [RFC5812] presents a formal way to describe the The Forwarding and Control Element Separation (ForCES) Model
Forwarding Plane's datapath with Logical Function Blocks (LFBs) using [RFC5812] presents a formal way to describe the Forwarding Plane's
XML. This document describes how packet parallelization can be datapath with Logical Function Blocks (LFBs) using XML. This
described with the ForCES model. document describes how packet parallelization can be described with
the ForCES model.
The modelling concept has been influenced by Cilc [Cilc]. Cilc is a The modeling concept has been influenced by Cilk [Cilk]. Cilk is a
programming language that has been developed since 1994 at the MIT programming language that has been developed since 1994 at the MIT
Laboratory to allow programmers to identify elements that can be Laboratory to allow programmers to identify elements that can be
executed in parallel. The two Cilc concepts used in this document is executed in parallel. The two Cilk concepts used in this document is
spawn and sync. Spawn being the place where parallel tasks can start spawn and sync. Spawn being the place where parallel tasks can start
and sync being the place where the parallel task finishes and must and sync being the place where the parallel task finishes and must
collect all parallel output. collect all parallel output.
As task, we define a grouping of packets or pieces of a packet As task, we define a grouping of packets or pieces of a packet
(chunks) that belong to the same original packet and are going to be (chunks) that belong to the same original packet and are going to be
processed in parallel. All packets/chunks of the same task will be processed in parallel. All packets/chunks of the same task will be
distinguished by an identifier, in the specific case we use a 32-bit distinguished by an identifier, in the specific case we use a 32-bit
identifier named task correlator. identifier named task correlator.
Being an experimental document the LFB Class IDs cannot be included This document is in the experimental track and thus the LFB Class IDs
in the standard action's value and therefore must have a value of will not be included in the standard action's values. Therefore the
larger than 65535 and must begin with prefix 'Ext-'. However when we LFB Class IDs must have a value larger than 65535 and the LFB names
must begin with the prefix 'Ext-'. However for brevity, when we
refer to the LFB Class names in the text of this document (not the refer to the LFB Class names in the text of this document (not the
formal definitions), we will omit the 'Ext-' prefix. formal definitions), the 'Ext-' prefix will be omitted.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
1.2. Definitions 1.2. Definitions
This document follows the terminology defined by the ForCES Model in This document follows the terminology defined by the ForCES Model in
[RFC5812]. In particular, the reader is expected to be familiar with [RFC5812]. In particular, the reader is expected to be familiar with
the following terms: the following terms:
FE
CE
FE Model FE Model
LFB (Logical Functional Block) Class (or type) LFB (Logical Functional Block) Class (or type)
LFB Instance LFB Instance
LFB Model LFB Model
Element Element
Attribute Attribute
skipping to change at page 5, line 14 skipping to change at page 5, line 21
here. An implementer may either decide to physical copy the packet here. An implementer may either decide to physical copy the packet
and send all packets on the parallel paths, or may decide to and send all packets on the parallel paths, or may decide to
logically copy the packet by simply sending, for example, pointers of logically copy the packet by simply sending, for example, pointers of
the same packet provided that the necessary interlocks are taken into the same packet provided that the necessary interlocks are taken into
account. The implementer has to take into account the device's account. The implementer has to take into account the device's
characteristics to decide which approach fits best to the device. characteristics to decide which approach fits best to the device.
In the split parallel type, while harder, the implementer may also In the split parallel type, while harder, the implementer may also
decide to logically split the packet and send, for example, pointers decide to logically split the packet and send, for example, pointers
to parts of the packet, provided that the necessary interlocks are to parts of the packet, provided that the necessary interlocks are
managed. In addition, how chunks are distributed to the LFBs, e.g. managed. In addition, how chunks are distributed to the LFBs, e.g.,
which chunk to which LFB, is implementation dependent. For example which chunk to which LFB, is implementation dependent. For example
while usually chunks are sent to the same LFB class, the number of while usually chunks are sent to the same LFB class, the number of
LFB instances may not equal to the number of chunks. It is up to the LFB instances may not equal to the number of chunks. It is up to the
implementer to decide how these chunks will be sent, for example in a implementer to decide how these chunks will be sent, for example in a
round-robin fashion. round-robin fashion.
This document introduces two LFBs that are used in before and after This document introduces two LFBs that are used in before and after
the parallelization occurs: the parallelization occurs:
1. Splitter - similar to Cilc's spawn. An LFB that will split the 1. Splitter - similar to Cilk's spawn. An LFB that will split the
path of a packet which will be sent to multiple downstream LFBs path of a packet which will be sent to multiple downstream LFBs
to be processed in parallel. to be processed in parallel.
2. Merger - similar to Cilc's sync. An LFB that will receive 2. Merger - similar to Cilk's sync. An LFB that will receive
packets or chunks of the same initial packet and merge them and packets or chunks of the same initial packet and merge them and
the results into one packet. the results into one packet.
Both parallel packet distribution types can currently be achieved Both parallel packet distribution types can currently be achieved
with the ForCES model. The splitter LFB has one group output that with the ForCES model. The splitter LFB has one group output that
produces either chunks or packets to be sent to LFBs for processing produces either chunks or packets to be sent to LFBs for processing
and the merger LFB has one group input that expects either packets or and the merger LFB has one group input that expects either packets or
chunks to aggregate all the parallel packets or chunks and produce a chunks to aggregate all the parallel packets or chunks and produce a
single packet. Figure 1 shows a simple example of a split parallel single packet. Figure 1 shows a simple example of a split parallel
datapath along with the splitter and merger LFB. Figure 2 shows an datapath along with the splitter and merger LFB. Figure 2 shows an
skipping to change at page 6, line 32 skipping to change at page 6, line 32
--->| Splitter | +------------+ +-------+ | Merger |---> --->| Splitter | +------------+ +-------+ | Merger |--->
| LFB | | LFB | | LFB | | LFB |
| |P+M +------------+ P+M | | | |P+M +------------+ P+M | |
| |--------->| IPv4 TTL |---------->| | | |--------->| IPv4 TTL |---------->| |
+----------+ | Decrement | +----------+ +----------+ | Decrement | +----------+
| LFB | | LFB |
+------------+ +------------+
Figure 2: Simple flood parallel processing Figure 2: Simple flood parallel processing
This version of the modelling framework does not allow for nested This version of the modeling framework does not allow for nested
parallel datapath topologies. This decision was reached by the parallel datapath topologies. This decision was reached by the
authors and the ForCES working group as there was no strong use case authors and the ForCES working group as there was no strong use case
or need at decision time. This led to a simpler metadata definition, or need at decision time. This led to a simpler metadata definition,
which was needed to be transported between the splitter and the which was needed to be transported between the splitter and the
corresponding merger. If there is a need for nested parallel corresponding merger. If there is a need for nested parallel
datapaths a new version of a splitter and merger will be needed to be datapaths a new version of a splitter and merger will be needed to be
defined as well as an augmentation to the defined metadata. defined as well as an augmentation to the defined metadata.
2.1. Core parallelization LFB 2.1. Core parallelization LFB
skipping to change at page 8, line 7 skipping to change at page 8, line 7
<synopsis>The id of the LFB Class</synopsis> <synopsis>The id of the LFB Class</synopsis>
<typeRef>uint32</typeRef> <typeRef>uint32</typeRef>
</component> </component>
<component componentID="3"> <component componentID="3">
<name>LFBVersion</name> <name>LFBVersion</name>
<synopsis>The version of the LFB Class used by this FE <synopsis>The version of the LFB Class used by this FE
</synopsis> </synopsis>
<typeRef>string</typeRef> <typeRef>string</typeRef>
</component> </component>
<component componentID="4"> <component componentID="4">
<name>LFBParallelOccurenceLimit</name> <name>LFBParallelOccurrenceLimit</name>
<synopsis>The upper limit of instances of the same <synopsis>The upper limit of instances of the same
parallel LFBs of this class</synopsis> parallel LFBs of this class</synopsis>
<optional /> <optional />
<typeRef>uint32</typeRef> <typeRef>uint32</typeRef>
</component> </component>
<component componentID="5"> <component componentID="5">
<name>AllowedParallelAfters</name> <name>AllowedParallelAfters</name>
<synopsis>List of LFB Classes that can follow this LFB <synopsis>List of LFB Classes that can follow this LFB
in a parallel pipeline</synopsis> in a parallel pipeline</synopsis>
<optional /> <optional />
skipping to change at page 14, line 14 skipping to change at page 14, line 14
4.2.2. Components 4.2.2. Components
This LFB has the following components specified: This LFB has the following components specified:
1. InvalidAction - a uchar defining what the Merge LFB will do if an 1. InvalidAction - a uchar defining what the Merge LFB will do if an
invalid chunk or packet is received. If set to 0 (DropAll) the invalid chunk or packet is received. If set to 0 (DropAll) the
merge will be considered invalid and all chunks or packets will merge will be considered invalid and all chunks or packets will
be dropped. If set to 1 (Continue) the merge will continue. be dropped. If set to 1 (Continue) the merge will continue.
2. MergeWaitTimeoutTimer - a uint32 defining the amount of time that 2. MergeWaitTimeoutTimer - a uint32 defining the amount of time, in
the Merger will wait for all packets or chuncks within the same milliseconds, that the Merger will wait for all packets or
task to arrive before considering them invalid. chuncks within the same task to arrive before considering them
invalid. The MergeWaitTimeoutTimer starts as soon as the first
chunk or packet of a parallel task arrives.
3. MergeWaitType - a boolean. If true the Merger LFB will wait for 3. MergeWaitType - a boolean. If true the Merger LFB will wait for
all packets or chunks to be received prior to performing the all packets or chunks to be received prior to performing the
merge. If false, when one packet or a chunk with a response is merge. If false, when one packet or a chunk with a response is
received by the merge LFB it will start with the merge process. received by the merge LFB it will start with the merge process.
4. InvalidMergesCounter - a uint32 that counts the number of merges 4. InvalidMergesCounter - a uint32 that counts the number of merges
where there is at least one packet or chunk that entered the where there is at least one packet or chunk that entered the
merger LFB through the InvalidIn input port. merger LFB through the InvalidIn input port.
5. InvalidTotalCounter - a uint 32 that counts the number of merges 5. InvalidTotalCounter - a uint32 that counts the number of merges
where all packets/chunks entered the merger LFB through the where all packets/chunks entered the merger LFB through the
InvalidIn input port. InvalidIn input port.
6. InvalidIDCounters - a struct of two arrays. Each array has a 6. InvalidIDCounters - a struct of two arrays. Each array has a
uint32 per row. Each array counts number of invalid merges where uint32 per row. Each array counts number of invalid merges where
at least one packet or chunk entered through InvalidID per error at least one packet or chunk entered through InvalidID per error
ID. The first array is the InvalidExceptionID and the second is ID. The first array is the InvalidExceptionID and the second is
the InvalidValidateErrorID. the InvalidValidateErrorID.
4.2.3. Capabilities 4.2.3. Capabilities
skipping to change at page 15, line 30 skipping to change at page 15, line 30
This LFB has only one capability specified. The ParallelLFBs is a This LFB has only one capability specified. The ParallelLFBs is a
table which lists all the LFBs that can be parallelized. Each row of table which lists all the LFBs that can be parallelized. Each row of
the table contains: the table contains:
1. LFBName - a string. The Name of the parallel LFB. 1. LFBName - a string. The Name of the parallel LFB.
2. LFBClassID - a uint32. The Class ID of the parallel LFB. 2. LFBClassID - a uint32. The Class ID of the parallel LFB.
3. LFBVersion - a string. The Version of the parallel LFB. 3. LFBVersion - a string. The Version of the parallel LFB.
4. LFBParallelOccurenceLimit - a uint32. The upper limit of 4. LFBParallelOccurrenceLimit - a uint32. The upper limit of
instances of the same parallel LFBs of this class. instances of the same parallel LFBs of this class.
5. AllowedParallelAfters - a table of uint32s (LFB Class IDs). A 5. AllowedParallelAfters - a table of uint32s (LFB Class IDs). A
list of LFB classes that can follow this LFB class in a pipeline list of LFB classes that can follow this LFB class in a pipeline
for a parallel path. for a parallel path.
6. AllowedParallelBefores - a table of uint32s (LFB Class IDs). A 6. AllowedParallelBefores - a table of uint32s (LFB Class IDs). A
list of LFB classes that can exist before this LFB class in a list of LFB classes that can exist before this LFB class in a
pipeline for a parallel path. pipeline for a parallel path.
skipping to change at page 16, line 8 skipping to change at page 16, line 8
LFB classes that can process packets or chunks in parallel with LFB classes that can process packets or chunks in parallel with
this LFB class. this LFB class.
4.3.4. Events 4.3.4. Events
This LFB specifies no events This LFB specifies no events
5. XML for Parallel LFB library 5. XML for Parallel LFB library
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<LFBLibrary xmlns="urn:ietf:params:xml:ns:forces:lfbmodel:1.0" <LFBLibrary xmlns="urn:ietf:params:xml:ns:forces:lfbmodel:1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:forces:lfbmodel:1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:forces:lfbmodel:1.1"
provides="Parallel"> provides="Parallel">
<load library="BaseTypeLibrary" location="BaseTypeLibrary.LFB"/> <load library="BaseTypeLibrary" location="BaseTypeLibrary.LFB"/>
<frameDefs> <frameDefs>
<frameDef> <frameDef>
<name>Chunk</name> <name>Chunk</name>
<synopsis>A chunk is a frame that is part of an original <synopsis>A chunk is a frame that is part of an original
larger frame</synopsis> larger frame</synopsis>
</frameDef> </frameDef>
</frameDefs> </frameDefs>
<dataTypeDefs> <dataTypeDefs>
skipping to change at page 17, line 13 skipping to change at page 17, line 13
<synopsis>The id of the LFB Class</synopsis> <synopsis>The id of the LFB Class</synopsis>
<typeRef>uint32</typeRef> <typeRef>uint32</typeRef>
</component> </component>
<component componentID="3"> <component componentID="3">
<name>LFBVersion</name> <name>LFBVersion</name>
<synopsis>The version of the LFB Class used by this FE <synopsis>The version of the LFB Class used by this FE
</synopsis> </synopsis>
<typeRef>string</typeRef> <typeRef>string</typeRef>
</component> </component>
<component componentID="4"> <component componentID="4">
<name>LFBParallelOccurenceLimit</name> <name>LFBParallelOccurrenceLimit</name>
<synopsis>The upper limit of instances of the same <synopsis>The upper limit of instances of the same
parallel LFBs of this class</synopsis> parallel LFBs of this class</synopsis>
<optional/> <optional/>
<typeRef>uint32</typeRef> <typeRef>uint32</typeRef>
</component> </component>
<component componentID="5"> <component componentID="5">
<name>AllowedParallelAfters</name> <name>AllowedParallelAfters</name>
<synopsis>List of LFB Classes that can follow this LFB <synopsis>List of LFB Classes that can follow this LFB
in a parallel pipeline</synopsis> in a parallel pipeline</synopsis>
<optional/> <optional/>
skipping to change at page 23, line 42 skipping to change at page 23, line 42
<typeRef>ParallelLFBType</typeRef> <typeRef>ParallelLFBType</typeRef>
</array> </array>
</capability> </capability>
</capabilities> </capabilities>
</LFBClassDef> </LFBClassDef>
</LFBClassDefs> </LFBClassDefs>
</LFBLibrary> </LFBLibrary>
Figure 6: Parallel LFB library Figure 6: Parallel LFB library
6. Acknowledgements 6. Acknowledgments
The authors would like to thank Edward Crabbe for the initial The authors would like to thank Edward Crabbe for the initial
discussion that led to the creation of this document and Jamal Hadi discussion that led to the creation of this document and Jamal Hadi
Salim and Dave Hood for comments and discussions that made this Salim and Dave Hood for comments and discussions that made this
document better. document better. Additionally Adrian Farrel for his AD review.
Finally Francis Dupont for his Gen-Art review and Magnus Nystroem for
his security review which refined this document to its final shape.
7. IANA Considerations 7. IANA Considerations
7.1. LFB Class Names and LFB Class Identifiers 7.1. LFB Class Names and LFB Class Identifiers
LFB classes defined by this document do not belong to LFBs defined by LFB classes defined by this document do not belong to LFBs defined by
Standards Track RFCs in the http://www.iana.org/assignments/forces/ Standards Track RFCs in the http://www.iana.org/assignments/forces
forces.xml registry. As such the values defined in this document are registry. As such the values defined in this document are in the
in the above 65535 value range. above 65535 value range.
This specification includes the following LFB class names and LFB This specification includes the following LFB class names and LFB
class identifiers: class identifiers:
+----------+--------------------+--------+---------------+----------+ +----------+--------------------+--------+---------------+----------+
| LFB | LFB Class Name | LFB Ve | Description | Referenc | | LFB | LFB Class Name | LFB Ve | Description | Referenc |
| Class Id | | rsion | | e | | Class Id | | rsion | | e |
| entifier | | | | | | entifier | | | | |
+----------+--------------------+--------+---------------+----------+ +----------+--------------------+--------+---------------+----------+
| 65537 | Ext-Splitter | 1.0 | A splitter | This | | 65537 | Ext-Splitter | 1.0 | A splitter | This |
skipping to change at page 25, line 24 skipping to change at page 25, line 24
+------------+---------------------+---------------+ +------------+---------------------+---------------+
Metadata ID assigned by this specification Metadata ID assigned by this specification
8. Security Considerations 8. Security Considerations
This document does not alter either the ForCES model [RFC5812] or the This document does not alter either the ForCES model [RFC5812] or the
ForCES protocol [RFC5810] and as such has no impact on their security ForCES protocol [RFC5810] and as such has no impact on their security
considerations. This document simply defines the operational considerations. This document simply defines the operational
parameters and capabilities of LFBs that perform parallelization and parameters and capabilities of LFBs that perform parallelization and
not how parallelization is implemented. However as parallezation not how parallelization is implemented. Finally, this document does
tasks have security issues, a designer or an implementer must take not attempt to analyze the presence or possibility of security
into account any security considerations that regards packet interactions created by allowing parallel operations on packets. Any
parallelization. such issues, if they exist, are for the designers of the particular
data path, not the general mechanism.
9. References 9. References
9.1. Normative References 9.1. Normative References
[I-D.ietf-forces-model-extension] [I-D.ietf-forces-model-extension]
Haleplidis, E., "ForCES Model Extension", draft-ietf- Haleplidis, E., "ForCES Model Extension", draft-ietf-
forces-model-extension-04 (work in progress), August 2014. forces-model-extension-05 (work in progress), September
2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5810] Doria, A., Hadi Salim, J., Haas, R., Khosravi, H., Wang, [RFC5810] Doria, A., Hadi Salim, J., Haas, R., Khosravi, H., Wang,
W., Dong, L., Gopal, R., and J. Halpern, "Forwarding and W., Dong, L., Gopal, R., and J. Halpern, "Forwarding and
Control Element Separation (ForCES) Protocol Control Element Separation (ForCES) Protocol
Specification", RFC 5810, March 2010. Specification", RFC 5810, March 2010.
[RFC5812] Halpern, J. and J. Hadi Salim, "Forwarding and Control [RFC5812] Halpern, J. and J. Hadi Salim, "Forwarding and Control
Element Separation (ForCES) Forwarding Element Model", RFC Element Separation (ForCES) Forwarding Element Model", RFC
5812, March 2010. 5812, March 2010.
[RFC6956] Wang, W., Haleplidis, E., Ogawa, K., Li, C., and J. [RFC6956] Wang, W., Haleplidis, E., Ogawa, K., Li, C., and J.
Halpern, "Forwarding and Control Element Separation Halpern, "Forwarding and Control Element Separation
(ForCES) Logical Function Block (LFB) Library", RFC 6956, (ForCES) Logical Function Block (LFB) Library", RFC 6956,
June 2013. June 2013.
9.2. Informative References 9.2. Informative References
[Cilc] MIT, "Cilk language", [Cilk] MIT, "Cilk language",
<http://supertech.csail.mit.edu/cilk/>. <http://supertech.csail.mit.edu/cilk/>.
Authors' Addresses Authors' Addresses
Evangelos Haleplidis Evangelos Haleplidis
University of Patras University of Patras
Department of Electrical and Computer Engineering Department of Electrical and Computer Engineering
Patras 26500 Patras 26500
Greece Greece
Email: ehalep@ece.upatras.gr Email: ehalep@ece.upatras.gr
Joel Halpern Joel Halpern
Ericsson Ericsson
P.O. Box 6049 P.O. Box 6049
Leesburg 20178 Leesburg VA 20178
VA USA
Phone: +1 703 371 3043 Phone: +1 703 371 3043
Email: joel.halpern@ericsson.com Email: joel.halpern@ericsson.com
 End of changes. 30 change blocks. 
46 lines changed or deleted 59 lines changed or added

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