draft-ietf-forces-protocol-19.txt   draft-ietf-forces-protocol-20.txt 
Network Working Group A. Doria (Ed.) Network Working Group A. Doria (Ed.)
Internet-Draft Lulea University of Technology Internet-Draft Lulea University of Technology
Intended status: Standards Track R. Haas (Ed.) Intended status: Standards Track R. Haas (Ed.)
Expires: May 21, 2009 IBM Expires: August 7, 2009 IBM
J. Hadi Salim (Ed.) J. Hadi Salim (Ed.)
Znyx Znyx
H. Khosravi (Ed.) H. Khosravi (Ed.)
Intel Intel
W. M. Wang (Ed.) W. M. Wang (Ed.)
Zhejiang Gongshang University Zhejiang Gongshang University
November 17, 2008 February 3, 2009
ForCES Protocol Specification ForCES Protocol Specification
draft-ietf-forces-protocol-19.txt draft-ietf-forces-protocol-20.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any This Internet-Draft is submitted to IETF in full conformance with the
applicable patent or other IPR claims of which he or she is aware provisions of BCP 78 and BCP 79.
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. 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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 21, 2009. This Internet-Draft will expire on August 7, 2009.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). Copyright (c) 2009 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.
Abstract Abstract
This document specifies the Forwarding and Control Element Separation This document specifies the Forwarding and Control Element Separation
(ForCES) protocol. ForCES protocol is used for communications (ForCES) protocol. ForCES protocol is used for communications
between Control Elements(CEs) and Forwarding Elements (FEs) in a between Control Elements(CEs) and Forwarding Elements (FEs) in a
ForCES Network Element (ForCES NE). This specification is intended ForCES Network Element (ForCES NE). This specification is intended
to meet the ForCES protocol requirements defined in RFC3654. Besides to meet the ForCES protocol requirements defined in RFC3654. Besides
the ForCES protocol, this specification also defines the requirements the ForCES protocol, this specification also defines the requirements
for the Transport Mapping Layer (TML). for the Transport Mapping Layer (TML).
skipping to change at page 3, line 21 skipping to change at page 4, line 21
University of Technology), Ram Gopal (Nokia), Robert Haas (IBM), University of Technology), Ram Gopal (Nokia), Robert Haas (IBM),
Jamal Hadi Salim (Znyx), Hormuzd M Khosravi (Intel), and Weiming Wang Jamal Hadi Salim (Znyx), Hormuzd M Khosravi (Intel), and Weiming Wang
(Zhejiang Gongshang University). Special acknowledgement goes to (Zhejiang Gongshang University). Special acknowledgement goes to
Joel Halpern who has done extensive editing in support of congruence Joel Halpern who has done extensive editing in support of congruence
between the model and this protocol specification. Without his between the model and this protocol specification. Without his
participation and persistence, this specification might never have participation and persistence, this specification might never have
been completed. been completed.
Table of Contents Table of Contents
1. Terminology and Conventions . . . . . . . . . . . . . . . . . 6 1. Terminology and Conventions . . . . . . . . . . . . . . . . . 7
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 6 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 7
1.2. Other Notation . . . . . . . . . . . . . . . . . . . . . 6 1.2. Other Notation . . . . . . . . . . . . . . . . . . . . . 7
1.3. Integers . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3. Integers . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1. Protocol Framework . . . . . . . . . . . . . . . . . . . 11 4.1. Protocol Framework . . . . . . . . . . . . . . . . . . . 12
4.1.1. The PL . . . . . . . . . . . . . . . . . . . . . . . 13 4.1.1. The PL . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.2. The TML . . . . . . . . . . . . . . . . . . . . . . . 14 4.1.2. The TML . . . . . . . . . . . . . . . . . . . . . . . 15
4.1.3. The FEM/CEM Interface . . . . . . . . . . . . . . . . 14 4.1.3. The FEM/CEM Interface . . . . . . . . . . . . . . . . 15
4.2. ForCES Protocol Phases . . . . . . . . . . . . . . . . . 15 4.2. ForCES Protocol Phases . . . . . . . . . . . . . . . . . 16
4.2.1. Pre-association . . . . . . . . . . . . . . . . . . . 16 4.2.1. Pre-association . . . . . . . . . . . . . . . . . . . 17
4.2.2. Post-association . . . . . . . . . . . . . . . . . . 17 4.2.2. Post-association . . . . . . . . . . . . . . . . . . 18
4.3. Protocol Mechanisms . . . . . . . . . . . . . . . . . . . 19 4.3. Protocol Mechanisms . . . . . . . . . . . . . . . . . . . 20
4.3.1. Transactions, Atomicity, Execution and Responses . . 19 4.3.1. Transactions, Atomicity, Execution and Responses . . 20
4.3.2. Scalability . . . . . . . . . . . . . . . . . . . . . 25 4.3.2. Scalability . . . . . . . . . . . . . . . . . . . . . 26
4.3.3. Heartbeat Mechanism . . . . . . . . . . . . . . . . . 26 4.3.3. Heartbeat Mechanism . . . . . . . . . . . . . . . . . 27
4.3.4. FE Object and FE Protocol LFBs . . . . . . . . . . . 26 4.3.4. FE Object and FE Protocol LFBs . . . . . . . . . . . 27
4.4. Protocol Scenarios . . . . . . . . . . . . . . . . . . . 27 4.4. Protocol Scenarios . . . . . . . . . . . . . . . . . . . 28
4.4.1. Association Setup State . . . . . . . . . . . . . . . 27 4.4.1. Association Setup State . . . . . . . . . . . . . . . 28
4.4.2. Association Established state or Steady State . . . . 28 4.4.2. Association Established state or Steady State . . . . 29
5. TML Requirements . . . . . . . . . . . . . . . . . . . . . . 31 5. TML Requirements . . . . . . . . . . . . . . . . . . . . . . 32
5.1. TML Parameterization . . . . . . . . . . . . . . . . . . 32 5.1. TML Parameterization . . . . . . . . . . . . . . . . . . 34
6. Message Encapsulation . . . . . . . . . . . . . . . . . . . . 33 6. Message Encapsulation . . . . . . . . . . . . . . . . . . . . 35
6.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 33 6.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 35
6.2. Type Length Value (TLV) Structuring . . . . . . . . . . . 38 6.2. Type Length Value (TLV) Structuring . . . . . . . . . . . 40
6.2.1. Nested TLVs . . . . . . . . . . . . . . . . . . . . . 39 6.2.1. Nested TLVs . . . . . . . . . . . . . . . . . . . . . 41
6.2.2. Scope of the T in TLV . . . . . . . . . . . . . . . . 39 6.2.2. Scope of the T in TLV . . . . . . . . . . . . . . . . 41
6.3. ILV . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.3. ILV . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4. Important Protocol encapsulations . . . . . . . . . . . . 40 6.4. Important Protocol encapsulations . . . . . . . . . . . . 42
6.4.1. Paths . . . . . . . . . . . . . . . . . . . . . . . . 40 6.4.1. Paths . . . . . . . . . . . . . . . . . . . . . . . . 42
6.4.2. Keys . . . . . . . . . . . . . . . . . . . . . . . . 41 6.4.2. Keys . . . . . . . . . . . . . . . . . . . . . . . . 43
6.4.3. DATA TLVs . . . . . . . . . . . . . . . . . . . . . . 41 6.4.3. DATA TLVs . . . . . . . . . . . . . . . . . . . . . . 43
6.4.4. Addressing LFB entities . . . . . . . . . . . . . . . 41 6.4.4. Addressing LFB entities . . . . . . . . . . . . . . . 43
7. Protocol Construction . . . . . . . . . . . . . . . . . . . . 43 7. Protocol Construction . . . . . . . . . . . . . . . . . . . . 45
7.1. Discussion on encoding . . . . . . . . . . . . . . . . . 47 7.1. Discussion on encoding . . . . . . . . . . . . . . . . . 49
7.1.1. Data Packing Rules . . . . . . . . . . . . . . . . . 47 7.1.1. Data Packing Rules . . . . . . . . . . . . . . . . . 49
7.1.2. Path Flags . . . . . . . . . . . . . . . . . . . . . 47 7.1.2. Path Flags . . . . . . . . . . . . . . . . . . . . . 49
7.1.3. Relation of operational flags with global message 7.1.3. Relation of operational flags with global message
flags . . . . . . . . . . . . . . . . . . . . . . . . 48 flags . . . . . . . . . . . . . . . . . . . . . . . . 50
7.1.4. Content Path Selection . . . . . . . . . . . . . . . 48 7.1.4. Content Path Selection . . . . . . . . . . . . . . . 50
7.1.5. LFBselect-TLV . . . . . . . . . . . . . . . . . . . . 48 7.1.5. LFBselect-TLV . . . . . . . . . . . . . . . . . . . . 50
7.1.6. OPER-TLV . . . . . . . . . . . . . . . . . . . . . . 49 7.1.6. OPER-TLV . . . . . . . . . . . . . . . . . . . . . . 51
7.1.7. RESULT TLV . . . . . . . . . . . . . . . . . . . . . 51 7.1.7. RESULT TLV . . . . . . . . . . . . . . . . . . . . . 53
7.1.8. DATA TLV . . . . . . . . . . . . . . . . . . . . . . 54 7.1.8. DATA TLV . . . . . . . . . . . . . . . . . . . . . . 56
7.1.9. SET and GET Relationship . . . . . . . . . . . . . . 55 7.1.9. SET and GET Relationship . . . . . . . . . . . . . . 57
7.2. Protocol Encoding Visualization . . . . . . . . . . . . . 56 7.2. Protocol Encoding Visualization . . . . . . . . . . . . . 58
7.3. Core ForCES LFBs . . . . . . . . . . . . . . . . . . . . 59 7.3. Core ForCES LFBs . . . . . . . . . . . . . . . . . . . . 61
7.3.1. FE Protocol LFB . . . . . . . . . . . . . . . . . . . 60 7.3.1. FE Protocol LFB . . . . . . . . . . . . . . . . . . . 62
7.3.2. FE Object LFB . . . . . . . . . . . . . . . . . . . . 63 7.3.2. FE Object LFB . . . . . . . . . . . . . . . . . . . . 65
7.4. Semantics of Message Direction . . . . . . . . . . . . . 63 7.4. Semantics of Message Direction . . . . . . . . . . . . . 65
7.5. Association Messages . . . . . . . . . . . . . . . . . . 64 7.5. Association Messages . . . . . . . . . . . . . . . . . . 66
7.5.1. Association Setup Message . . . . . . . . . . . . . . 64 7.5.1. Association Setup Message . . . . . . . . . . . . . . 66
7.5.2. Association Setup Response Message . . . . . . . . . 66 7.5.2. Association Setup Response Message . . . . . . . . . 68
7.5.3. Association Teardown Message . . . . . . . . . . . . 67 7.5.3. Association Teardown Message . . . . . . . . . . . . 69
7.6. Configuration Messages . . . . . . . . . . . . . . . . . 69 7.6. Configuration Messages . . . . . . . . . . . . . . . . . 71
7.6.1. Config Message . . . . . . . . . . . . . . . . . . . 69 7.6.1. Config Message . . . . . . . . . . . . . . . . . . . 71
7.6.2. Config Response Message . . . . . . . . . . . . . . . 71 7.6.2. Config Response Message . . . . . . . . . . . . . . . 73
7.7. Query Messages . . . . . . . . . . . . . . . . . . . . . 73 7.7. Query Messages . . . . . . . . . . . . . . . . . . . . . 75
7.7.1. Query Message . . . . . . . . . . . . . . . . . . . . 73 7.7.1. Query Message . . . . . . . . . . . . . . . . . . . . 75
7.7.2. Query Response Message . . . . . . . . . . . . . . . 75 7.7.2. Query Response Message . . . . . . . . . . . . . . . 77
7.8. Event Notification Message . . . . . . . . . . . . . . . 77 7.8. Event Notification Message . . . . . . . . . . . . . . . 79
7.9. Packet Redirect Message . . . . . . . . . . . . . . . . . 79 7.9. Packet Redirect Message . . . . . . . . . . . . . . . . . 81
7.10. Heartbeat Message . . . . . . . . . . . . . . . . . . . . 82 7.10. Heartbeat Message . . . . . . . . . . . . . . . . . . . . 84
8. High Availability Support . . . . . . . . . . . . . . . . . . 84 8. High Availability Support . . . . . . . . . . . . . . . . . . 86
8.1. Relation with the FE Protocol . . . . . . . . . . . . . . 84 8.1. Relation with the FE Protocol . . . . . . . . . . . . . . 86
8.2. Responsibilities for HA . . . . . . . . . . . . . . . . . 87 8.2. Responsibilities for HA . . . . . . . . . . . . . . . . . 89
9. Security Considerations . . . . . . . . . . . . . . . . . . . 88 9. Security Considerations . . . . . . . . . . . . . . . . . . . 90
9.1. No Security . . . . . . . . . . . . . . . . . . . . . . . 88 9.1. No Security . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.1. Endpoint Authentication . . . . . . . . . . . . . . . 89 9.1.1. Endpoint Authentication . . . . . . . . . . . . . . . 91
9.1.2. Message Authentication . . . . . . . . . . . . . . . 89 9.1.2. Message Authentication . . . . . . . . . . . . . . . 91
9.2. ForCES PL and TML security service . . . . . . . . . . . 89 9.2. ForCES PL and TML security service . . . . . . . . . . . 91
9.2.1. Endpoint authentication service . . . . . . . . . . . 89 9.2.1. Endpoint authentication service . . . . . . . . . . . 91
9.2.2. Message authentication service . . . . . . . . . . . 90 9.2.2. Message authentication service . . . . . . . . . . . 92
9.2.3. Confidentiality service . . . . . . . . . . . . . . . 90 9.2.3. Confidentiality service . . . . . . . . . . . . . . . 92
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 91 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 93
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 92 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 94
11.1. Normative References . . . . . . . . . . . . . . . . . . 92 11.1. Normative References . . . . . . . . . . . . . . . . . . 94
11.2. Informational References . . . . . . . . . . . . . . . . 92 11.2. Informational References . . . . . . . . . . . . . . . . 94
Appendix A. IANA Considerations . . . . . . . . . . . . . . . . 93 Appendix A. IANA Considerations . . . . . . . . . . . . . . . . 95
A.1. Message Type Name Space . . . . . . . . . . . . . . . . . 93 A.1. Message Type Name Space . . . . . . . . . . . . . . . . . 95
A.2. Operation Selection . . . . . . . . . . . . . . . . . . . 94 A.2. Operation Selection . . . . . . . . . . . . . . . . . . . 96
A.3. Header Flags . . . . . . . . . . . . . . . . . . . . . . 95 A.3. Header Flags . . . . . . . . . . . . . . . . . . . . . . 97
A.4. TLV Type Name Space . . . . . . . . . . . . . . . . . . . 95 A.4. TLV Type Name Space . . . . . . . . . . . . . . . . . . . 97
A.5. Result-TLV Result Values . . . . . . . . . . . . . . . . 95 A.5. Result-TLV Result Values . . . . . . . . . . . . . . . . 97
A.6. Association Setup Response . . . . . . . . . . . . . . . 96 A.6. Association Setup Response . . . . . . . . . . . . . . . 98
A.7. Association Teardown Message . . . . . . . . . . . . . . 97 A.7. Association Teardown Message . . . . . . . . . . . . . . 99
Appendix B. ForCES Protocol LFB schema . . . . . . . . . . . . . 98 Appendix B. ForCES Protocol LFB schema . . . . . . . . . . . . . 100
B.1. Capabilities . . . . . . . . . . . . . . . . . . . . . . 103 B.1. Capabilities . . . . . . . . . . . . . . . . . . . . . . 105
B.2. Components . . . . . . . . . . . . . . . . . . . . . . . 103 B.2. Components . . . . . . . . . . . . . . . . . . . . . . . 105
Appendix C. Data Encoding Examples . . . . . . . . . . . . . . . 104 Appendix C. Data Encoding Examples . . . . . . . . . . . . . . . 106
Appendix D. Use Cases . . . . . . . . . . . . . . . . . . . . . 108 Appendix D. Use Cases . . . . . . . . . . . . . . . . . . . . . 110
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 123 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 125
Intellectual Property and Copyright Statements . . . . . . . . . 125
1. Terminology and Conventions 1. Terminology and Conventions
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 RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
1.2. Other Notation 1.2. Other Notation
skipping to change at page 31, line 17 skipping to change at page 32, line 17
The requirements below are expected to be delivered by the TML. This The requirements below are expected to be delivered by the TML. This
text does not define how such mechanisms are delivered. As an text does not define how such mechanisms are delivered. As an
example they could be defined to be delivered via hardware or between example they could be defined to be delivered via hardware or between
2 or more TML processes on different CEs or FEs in protocol level 2 or more TML processes on different CEs or FEs in protocol level
schemes. schemes.
Each TML must describe how it contributes to achieving the listed Each TML must describe how it contributes to achieving the listed
ForCES requirements. If for any reason a TML does not provide a ForCES requirements. If for any reason a TML does not provide a
service listed below a justification needs to be provided. service listed below a justification needs to be provided.
Implementations that support the ForCES Protocol Specification MUST
IMPLEMENT [SCTP-TML]. Note that additional TMLs might be specified
in the future, and if a new TML defined in the future that meets the
requirements listed here proves to be better, then the MUST IMPLEMENT
TML may redefined.
1. Reliability 1. Reliability
As defined by RFC 3654, section 6 #6. As defined by [RFC3654], section 6 requirement #6.
2. Security 2. Security
TML provides security services to the ForCES PL. A TML layer TML provides security services to the ForCES PL. Because a
SHOULD support the following security services and describe how ForCES PL is used to operate an NE, attacks designed to confuse,
they are achieved. disable, or take information from a ForCES-based NE may be seen
as a prime objective during a network attack.
* Endpoint authentication of FE and CE An attacker in a position to inject false messages into a PL
stream can either affect the FE's treatment of the data path
(example by falsifying control data reported as coming from the
CE), or the CE itself (by modifying events or responses reported
as coming from the FE); for this reason, CE and FE node
authentication and TML Message authentication is important.
* Message authentication The PL messages may also contain information of value to an
attacker, including information about the configuration of the
network, encryption keys and other sensitive control data, so
care must be taken to confine their visibility to authorized user
* Confidentiality service * The TML must provide a mechanism to authenticate ForCES CEs
and FEs in order to prevent the participation of unauthorized
CEs and unauthorized FEs in the control and data path
processing of a ForCES NE.
* The TML SHOULD provide a mechanism to ensure message
authentication of PL data transferred from the CE to FE (and
vice-versa) in order to prevent the injection of incorrect
data into PL messages.
* The TML SHOULD provide a mechanism to ensure the
confidentiality of data transferred from the ForCES PL, in
order to prevent disclosure of PL level information
transported via the TML.
The TML SHOULD provide these services by employing TLS or IPSEC. The TML SHOULD provide these services by employing TLS or IPSEC.
3. Congestion control 3. Congestion control
The congestion control scheme used needs to be defined. The The transport congestion control scheme used by the TML needs to
congestion control mechanism defined by the TML should prevent be defined. The congestion control mechanism defined by the TML
the FE from being overloaded by the CE or the CE from being MUST prevent transport congestive collapse [RFC2914] on either
overwhelmed by traffic from the FE. Additionally, the the FE or CE side.
circumstances under which notification is sent to the PL to
notify it of congestion must be defined.
4. Uni/multi/broadcast addressing/delivery, if any 4. Uni/multi/broadcast addressing/delivery, if any
If there is any mapping between PL and TML level uni/multi/ If there is any mapping between PL and TML level uni/multi/
broadcast addressing it needs to be defined. broadcast addressing it needs to be defined.
5. HA decisions 5. HA decisions
It is expected that availability of transport links is the TML's It is expected that availability of transport links is the TML's
responsibility. However, based upon its configuration, the PL responsibility. However, based upon its configuration, the PL
may wish to participate in link failover schemes and therefore may wish to participate in link failover schemes and therefore
the TML must support this capability. the TML must support this capability.
skipping to change at page 39, line 50 skipping to change at page 41, line 50
wherever TLVs occur in the PDU, a specific Type value refers to the wherever TLVs occur in the PDU, a specific Type value refers to the
same Type of TLV. This is a design choice that was made to ease same Type of TLV. This is a design choice that was made to ease
debugging of the protocol. debugging of the protocol.
6.3. ILV 6.3. ILV
A slight variation of the TLV known as the ILV. This sets the type A slight variation of the TLV known as the ILV. This sets the type
("T") to be a 32-bit local index that refers to a ForCES component ("T") to be a 32-bit local index that refers to a ForCES component
ID. (refer to Section 6.4.1). ID. (refer to Section 6.4.1).
ILV length field is 4 octets, and includes the length of the ILV type The ILV length field is a 4 octet integer, and includes the length of
(4 octets), ILV Length (4 octets), and the length of the ILV data the ILV type (4 octets), ILV Length (4 octets), and the length of the
found in the value field, in octets. Note that, as in the case of ILV data found in the value field, in octets. Note that, as in the
the TLV, this length is the actual length of the value, before any case of the TLV, this length is the actual length of the value,
padding for alignment is added. before any padding for alignment is added.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | | Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value | | Value |
. . . .
skipping to change at page 45, line 29 skipping to change at page 47, line 29
according to the rules for the contents of a FULLDATA-TLV, and according to the rules for the contents of a FULLDATA-TLV, and
represent the field or fields which make up the key identified represent the field or fields which make up the key identified
by the KeyID. by the KeyID.
o DATA may contain a FULLDATA-TLV, SPARSEDATA-TLV, a RESULT-TLV or 1 o DATA may contain a FULLDATA-TLV, SPARSEDATA-TLV, a RESULT-TLV or 1
or more further PATH-DATA selection. FULLDATA-TLV and SPARSEDATA- or more further PATH-DATA selection. FULLDATA-TLV and SPARSEDATA-
TLV are only allowed on SET or SET-PROP requests, or on responses TLV are only allowed on SET or SET-PROP requests, or on responses
which return content information (GET-RESPONSE for example). which return content information (GET-RESPONSE for example).
PATH-DATA may be included to extend the path on any request. PATH-DATA may be included to extend the path on any request.
* Note: Nested PATH-DATA TLVs are supported as an efficiency * Note: Nested PATH-DATA-TLVs are supported as an efficiency
measure to permit common subexpression extraction. measure to permit common subexpression extraction.
* FULLDATA-TLV and SPARSEDATA-TLV contain "the data" whose path * FULLDATA-TLV and SPARSEDATA-TLV contain "the data" whose path
has been selected by the PATH. Refer to Section 7.1 for has been selected by the PATH. Refer to Section 7.1 for
details. details.
* The following table summarizes the applicability and * The following table summarizes the applicability and
restrictions of the FULL/SPARSEDATA-TLVs and the RESULT-TLV to restrictions of the FULL/SPARSEDATA-TLVs and the RESULT-TLV to
the OPER-TLVs. the OPER-TLVs.
skipping to change at page 50, line 9 skipping to change at page 52, line 9
7.1.6. OPER-TLV 7.1.6. OPER-TLV
The OPER-TLV is a place holder in the grammar for TLVs that define The OPER-TLV is a place holder in the grammar for TLVs that define
operations. The different types are defined in Table 3, below. operations. The different types are defined in Table 3, below.
+-------------------+--------+--------------------------------------+ +-------------------+--------+--------------------------------------+
| OPER-TLV | TLV | Comments | | OPER-TLV | TLV | Comments |
| | "Type" | | | | "Type" | |
+-------------------+--------+--------------------------------------+ +-------------------+--------+--------------------------------------+
| SET | 0x0001 | From CE to FE. Used to create or | | SET | 0x0001 | From CE to FE. Used to create or add |
| | | add or update attributes | | | | or update attributes |
| | | | | | | |
| SET-PROP | 0x0002 | From CE to FE. Used to create or | | SET-PROP | 0x0002 | From CE to FE. Used to create or add |
| | | add or update attribute properties | | | | or update attribute properties |
| | | | | | | |
| SET-RESPONSE | 0x0003 | From FE to CE. Used to carry | | SET-RESPONSE | 0x0003 | From FE to CE. Used to carry |
| | | response of a SET | | | | response of a SET |
| | | | | | | |
| SET-PROP-RESPONSE | 0x0004 | From FE to CE. Used to carry | | SET-PROP-RESPONSE | 0x0004 | From FE to CE. Used to carry |
| | | response of a SET-PROP | | | | response of a SET-PROP |
| | | | | | | |
| DEL | 0x0005 | From CE to FE. Used to delete or | | DEL | 0x0005 | From CE to FE. Used to delete or |
| | | remove an attribute | | | | remove an attribute |
| | | | | | | |
skipping to change at page 51, line 51 skipping to change at page 53, line 51
definition is as below: definition is as below:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = RESULT-TLV | Length | | Type = RESULT-TLV | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Result Value | Reserved | | Result Value | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 19: RESULT TLV Figure 19: RESULT-TLV
Defined Result Values Defined Result Values
+-----------------------------+-----------+-------------------------+ +-----------------------------+-----------+-------------------------+
| Result Value | Value | Definition | | Result Value | Value | Definition |
+-----------------------------+-----------+-------------------------+ +-----------------------------+-----------+-------------------------+
| E_SUCCESS | 0x00 | Success | | E_SUCCESS | 0x00 | Success |
| | | | | | | |
| E_INVALID_HEADER | 0x01 | Unspecified error with | | E_INVALID_HEADER | 0x01 | Unspecified error with |
| | | header. | | | | header. |
| | | | | | | |
skipping to change at page 92, line 17 skipping to change at page 94, line 17
11.1. Normative References 11.1. Normative References
[FE-MODEL] [FE-MODEL]
Yang, L., Halpern, J., Gopal, R., DeKok, A., Haraszti, Z., Yang, L., Halpern, J., Gopal, R., DeKok, A., Haraszti, Z.,
and S. Blake, "ForCES Forwarding Element Model", and S. Blake, "ForCES Forwarding Element Model",
Feb. 2005. Feb. 2005.
[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.
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41,
RFC 2914, September 2000.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008. May 2008.
[SCTP-TML] Hadi Salim, J. and K. Ogawa, "SCTP based TML (Transport
Mapping Layer) for ForCES protocol", internet
draft draft-ietf-forces-sctptml, work in progress,
Feb. 2009.
11.2. Informational References 11.2. Informational References
[2PCREF] Gray, J., "Notes on database operating systems. In [2PCREF] Gray, J., "Notes on database operating systems. In
Operating Systems: An Advanced Course. Lecture Notes in Operating Systems: An Advanced Course. Lecture Notes in
Computer Science, Vol. 60, pp. 394-481, Springer-Verlag", Computer Science, Vol. 60, pp. 394-481, Springer-Verlag",
1978. 1978.
[ACID] Haerder, T. and A. Reuter, "Principles of Transaction- [ACID] Haerder, T. and A. Reuter, "Principles of Transaction-
Orientated Database Recovery", 1983. Orientated Database Recovery", 1983.
skipping to change at page 104, line 24 skipping to change at page 106, line 24
Structure with three fixed-lengthof, mandatory fields. Structure with three fixed-lengthof, mandatory fields.
struct S { struct S {
uint16 a uint16 a
uint16 b uint16 b
uint16 c uint16 c
} }
(a) Describing all fields using SPARSEDATA-TLV (a) Describing all fields using SPARSEDATA-TLV
Path-Data TLV PATH-DATA-TLV
Path to an instance of S ... Path to an instance of S ...
SPARSEDATA-TLV SPARSEDATA-TLV
ComponentIDof(a), lengthof(a), valueof(a) ComponentIDof(a), lengthof(a), valueof(a)
ComponentIDof(b), lengthof(b), valueof(b) ComponentIDof(b), lengthof(b), valueof(b)
ComponentIDof(c), lengthof(c), valueof(c) ComponentIDof(c), lengthof(c), valueof(c)
(b) Describing a subset of fields (b) Describing a subset of fields
Path-Data TLV PATH-DATA-TLV
Path to an instance of S ... Path to an instance of S ...
SPARSEDATA-TLV SPARSEDATA-TLV
ComponentIDof(a), lengthof(a), valueof(a) ComponentIDof(a), lengthof(a), valueof(a)
ComponentIDof(c), lengthof(c), valueof(c) ComponentIDof(c), lengthof(c), valueof(c)
Note: Even though there are non-optional components in structure S, Note: Even though there are non-optional components in structure S,
since one can uniquely identify components, one can selectively send since one can uniquely identify components, one can selectively send
component of structure S (eg in the case of an update from CE to FE). component of structure S (eg in the case of an update from CE to FE).
(c) Describing all fields using a FULLDATA-TLV (c) Describing all fields using a FULLDATA-TLV
Path-Data TLV PATH-DATA-TLV
Path to an instance of S ... Path to an instance of S ...
FULLDATA-TLV FULLDATA-TLV
valueof(a) valueof(a)
valueof(b) valueof(b)
valueof(c) valueof(c)
========== ==========
Example 2: Example 2:
========== ==========
Structure with three fixed-lengthof fields, one mandatory, two Structure with three fixed-lengthof fields, one mandatory, two
skipping to change at page 105, line 21 skipping to change at page 107, line 21
struct T { struct T {
uint16 a uint16 a
uint16 b (optional) uint16 b (optional)
uint16 c (optional) uint16 c (optional)
} }
This example is identical to Example 1, as illustrated below. This example is identical to Example 1, as illustrated below.
(a) Describing all fields using SPARSEDATA-TLV (a) Describing all fields using SPARSEDATA-TLV
Path-Data TLV PATH-DATA-TLV
Path to an instance of S ... Path to an instance of S ...
SPARSEDATA-TLV SPARSEDATA-TLV
ComponentIDof(a), lengthof(a), valueof(a) ComponentIDof(a), lengthof(a), valueof(a)
ComponentIDof(b), lengthof(b), valueof(b) ComponentIDof(b), lengthof(b), valueof(b)
ComponentIDof(c), lengthof(c), valueof(c) ComponentIDof(c), lengthof(c), valueof(c)
(b) Describing a subset of fields using SPARSEDATA-TLV (b) Describing a subset of fields using SPARSEDATA-TLV
Path-Data TLV PATH-DATA-TLV
Path to an instance of S ... Path to an instance of S ...
SPARSEDATA-TLV SPARSEDATA-TLV
ComponentIDof(a), lengthof(a), valueof(a) ComponentIDof(a), lengthof(a), valueof(a)
ComponentIDof(c), lengthof(c), valueof(c) ComponentIDof(c), lengthof(c), valueof(c)
(c) Describing all fields using a FULLDATA-TLV (c) Describing all fields using a FULLDATA-TLV
Path-Data TLV PATH-DATA-TLV
Path to an instance of S ... Path to an instance of S ...
FULLDATA-TLV FULLDATA-TLV
valueof(a) valueof(a)
valueof(b) valueof(b)
valueof(c) valueof(c)
Note: FULLDATA-TLV _cannot_ be used unless all fields are being Note: FULLDATA-TLV _cannot_ be used unless all fields are being
described. described.
========== ==========
skipping to change at page 109, line 15 skipping to change at page 111, line 15
equal to 00) then the flags will not show any selection. equal to 00) then the flags will not show any selection.
All the examples only show use of FULLDATA-TLV for data encoding; All the examples only show use of FULLDATA-TLV for data encoding;
although SPARSEDATA-TLV would make more sense in certain occasions, although SPARSEDATA-TLV would make more sense in certain occasions,
the emphasis is on showing the message layout. Refer to Appendix C the emphasis is on showing the message layout. Refer to Appendix C
for examples that show usage of both FULLDATA-TLV and SPARSEDATA-TLV. for examples that show usage of both FULLDATA-TLV and SPARSEDATA-TLV.
1. To get foo1 1. To get foo1
OPER = GET-TLV OPER = GET-TLV
Path-data TLV: IDCount = 1, IDs = 1 PATH-DATA-TLV: IDCount = 1, IDs = 1
Result: Result:
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data-TLV: PATH-DATA-TLV:
flags=0, IDCount = 1, IDs = 1 flags=0, IDCount = 1, IDs = 1
FULLDATA-TLV L = 4+4, V = valueof(foo1) FULLDATA-TLV L = 4+4, V = valueof(foo1)
2. To set foo2 to 10 2. To set foo2 to 10
OPER = SET-TLV OPER = SET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV: L = 4+4, V=10 FULLDATA-TLV: L = 4+4, V=10
Result: Result:
OPER = SET-RESPONSE-TLV OPER = SET-RESPONSE-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
3. To dump table2 3. To dump table2
OPER = GET-TLV OPER = GET-TLV
Path-data-TLV: PATH-DATA-TLV:
IDCount = 1, IDs = 4 IDCount = 1, IDs = 4
Result: Result:
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs = 4 flags = 0, IDCount = 1, IDs = 4
FULLDATA-TLV: L = XXX, V= FULLDATA-TLV: L = XXX, V=
a series of: index, valueof(j1), valueof(j2) a series of: index, valueof(j1), valueof(j2)
representing the entire table representing the entire table
Note: One should be able to take a GET-RESPONSE-TLV and Note: One should be able to take a GET-RESPONSE-TLV and
convert it to a SET-TLV. If the result in the above example convert it to a SET-TLV. If the result in the above example
is sent back in a SET-TLV, (instead of a GET-RESPONSE_TLV) is sent back in a SET-TLV, (instead of a GET-RESPONSE_TLV)
then the entire contents of the table will be replaced at then the entire contents of the table will be replaced at
that point. that point.
4. Multiple operations Example. To create entry 0-5 of table2 4. Multiple operations Example. To create entry 0-5 of table2
(Error conditions are ignored) (Error conditions are ignored)
OPER = SET-TLV OPER = SET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0 , IDCount = 1, IDs=4 flags = 0 , IDCount = 1, IDs=4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 0 flags = 0, IDCount = 1, IDs = 0
FULLDATA-TLV valueof(j1), valueof(j2) of entry 0 FULLDATA-TLV valueof(j1), valueof(j2) of entry 0
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV valueof(j1), valueof(j2) of entry 1 FULLDATA-TLV valueof(j1), valueof(j2) of entry 1
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV valueof(j1), valueof(j2) of entry 2 FULLDATA-TLV valueof(j1), valueof(j2) of entry 2
skipping to change at page 111, line 6 skipping to change at page 113, line 6
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
FULLDATA-TLV valueof(j1), valueof(j2) of entry 3 FULLDATA-TLV valueof(j1), valueof(j2) of entry 3
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 4 flags = 0, IDCount = 1, IDs = 4
FULLDATA-TLV valueof(j1), valueof(j2) of entry 4 FULLDATA-TLV valueof(j1), valueof(j2) of entry 4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 5 flags = 0, IDCount = 1, IDs = 5
FULLDATA-TLV valueof(j1), valueof(j2) of entry 5 FULLDATA-TLV valueof(j1), valueof(j2) of entry 5
Result: Result:
OPER = SET-RESPONSE-TLV OPER = SET-RESPONSE-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0 , IDCount = 1, IDs=4 flags = 0 , IDCount = 1, IDs=4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 0 flags = 0, IDCount = 1, IDs = 0
RESULT-TLV RESULT-TLV
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
RESULT-TLV RESULT-TLV
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
skipping to change at page 111, line 31 skipping to change at page 113, line 31
flags = 0, IDCount = 1, IDs = 4 flags = 0, IDCount = 1, IDs = 4
RESULT-TLV RESULT-TLV
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 5 flags = 0, IDCount = 1, IDs = 5
RESULT-TLV RESULT-TLV
5. Block operations (with holes) example. Replace entry 0,2 of 5. Block operations (with holes) example. Replace entry 0,2 of
table2 table2
OPER = SET-TLV OPER = SET-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0 , IDCount = 1, IDs=4 flags = 0 , IDCount = 1, IDs=4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 0 flags = 0, IDCount = 1, IDs = 0
FULLDATA-TLV containing valueof(j1), valueof(j2) of 0 FULLDATA-TLV containing valueof(j1), valueof(j2) of 0
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV containing valueof(j1), valueof(j2) of 2 FULLDATA-TLV containing valueof(j1), valueof(j2) of 2
Result: Result:
OPER = SET-TLV OPER = SET-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0 , IDCount = 1, IDs=4 flags = 0 , IDCount = 1, IDs=4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 0 flags = 0, IDCount = 1, IDs = 0
RESULT-TLV RESULT-TLV
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
6. Getting rows example. Get first entry of table2. 6. Getting rows example. Get first entry of table2.
OPER = GET-TLV OPER = GET-TLV
Path-data TLV: PATH-DATA-TLV:
IDCount = 2, IDs=4.0 IDCount = 2, IDs=4.0
Result: Result:
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data TLV: PATH-DATA-TLV:
IDCount = 2, IDs=4.0 IDCount = 2, IDs=4.0
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
7. Get entry 0-5 of table2. 7. Get entry 0-5 of table2.
OPER = GET-TLV OPER = GET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs=4 flags = 0, IDCount = 1, IDs=4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 0 flags = 0, IDCount = 1, IDs = 0
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 4 flags = 0, IDCount = 1, IDs = 4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 5 flags = 0, IDCount = 1, IDs = 5
Result: Result:
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs=4 flags = 0, IDCount = 1, IDs=4
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 0 flags = 0, IDCount = 1, IDs = 0
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
skipping to change at page 114, line 6 skipping to change at page 116, line 6
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 4 flags = 0, IDCount = 1, IDs = 4
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
PATH-DATA-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 5 flags = 0, IDCount = 1, IDs = 5
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
8. Create a row in table2, index 5. 8. Create a row in table2, index 5.
OPER = SET-TLV OPER = SET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0, IDCount = 2, IDs=4.5 flags = 0, IDCount = 2, IDs=4.5
FULLDATA-TLV containing valueof(j1), valueof(j2) FULLDATA-TLV containing valueof(j1), valueof(j2)
Result: Result:
OPER = SET-RESPONSE-TLV OPER = SET-RESPONSE-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs=4.5 flags = 0, IDCount = 1, IDs=4.5
RESULT-TLV RESULT-TLV
9. Dump contents of table1. 9. Dump contents of table1.
OPER = GET-TLV OPER = GET-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs=3 flags = 0, IDCount = 1, IDs=3
Result: Result:
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs=3 flags = 0, IDCount = 1, IDs=3
FULLDATA-TLV, Length = XXXX FULLDATA-TLV, Length = XXXX
(depending on size of table1) (depending on size of table1)
index, valueof(t1),valueof(t2) index, valueof(t1),valueof(t2)
index, valueof(t1),valueof(t2) index, valueof(t1),valueof(t2)
. .
. .
. .
10. Using Keys. Get row entry from table4 where j1=100. Recall, j1 10. Using Keys. Get row entry from table4 where j1=100. Recall, j1
is a defined key for this table and its KeyID is 1. is a defined key for this table and its KeyID is 1.
OPER = GET-TLV OPER = GET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = F_SELKEY IDCount = 1, IDs=6 flags = F_SELKEY IDCount = 1, IDs=6
KEYINFO-TLV = KeyID=1, KEY_DATA=100 KEYINFO-TLV = KeyID=1, KEY_DATA=100
Result: Result:
If j1=100 was at index 10 If j1=100 was at index 10
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0, IDCount = 1, IDs=6.10 flags = 0, IDCount = 1, IDs=6.10
FULLDATA-TLV containing FULLDATA-TLV containing
valueof(j1), valueof(j2),valueof(j3),valueof(j4) valueof(j1), valueof(j2),valueof(j3),valueof(j4)
11. Delete row with KEY match (j1=100, j2=200) in table2. Note that 11. Delete row with KEY match (j1=100, j2=200) in table2. Note that
the j1,j2 pair are a defined key for the table2. the j1,j2 pair are a defined key for the table2.
OPER = DEL-TLV OPER = DEL-TLV
Path-data TLV: PATH-DATA-TLV:
flags = F_SELKEY IDCount = 1, IDs=4 flags = F_SELKEY IDCount = 1, IDs=4
KEYINFO-TLV: {KeyID =1 KEY_DATA=100,200} KEYINFO-TLV: {KeyID =1 KEY_DATA=100,200}
Result: Result:
If (j1=100, j2=200) was at entry 15: If (j1=100, j2=200) was at entry 15:
OPER = DELETE-RESPONSE-TLV OPER = DELETE-RESPONSE-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0 IDCount = 2, IDs=4.15 flags = 0 IDCount = 2, IDs=4.15
RESULT-TLV RESULT-TLV
12. Dump contents of table3. It should be noted that this table has 12. Dump contents of table3. It should be noted that this table has
a column with component name that is variable sized. The a column with component name that is variable sized. The
purpose of this use case is to show how such an component is to purpose of this use case is to show how such an component is to
be encoded. be encoded.
OPER = GET-TLV OPER = GET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = 0 IDCount = 1, IDs=5 flags = 0 IDCount = 1, IDs=5
Result: Result:
OPER = GET-RESPONSE-TLV OPER = GET-RESPONSE-TLV
Path-data TLV: PATH-DATA-TLV:
flags = 0 IDCount = 1, IDs=5 flags = 0 IDCount = 1, IDs=5
FULLDATA-TLV, Length = XXXX FULLDATA-TLV, Length = XXXX
index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev), index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev),
V = valueof(v) V = valueof(v)
index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev), index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev),
V = valueof(v) V = valueof(v)
index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev), index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev),
V = valueof(v) V = valueof(v)
index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev), index, someidv, TLV: T=FULLDATA-TLV, L = 4+strlen(namev),
V = valueof(v) V = valueof(v)
skipping to change at page 116, line 24 skipping to change at page 118, line 24
//Operation 1: Add a new entry to table2 index #20. //Operation 1: Add a new entry to table2 index #20.
OPER = SET-TLV OPER = SET-TLV
Path-TLV: Path-TLV:
flags = 0, IDCount = 2, IDs=4.20 flags = 0, IDCount = 2, IDs=4.20
FULLDATA-TLV, V= valueof(j1),valueof(j2) FULLDATA-TLV, V= valueof(j1),valueof(j2)
// Operation 2: Update table1 entry which // Operation 2: Update table1 entry which
// was pointing with t2 = 10 to now point to 20 // was pointing with t2 = 10 to now point to 20
OPER = SET-TLV OPER = SET-TLV
Path-data-TLV: PATH-DATA-TLV:
flags = F_SELKEY, IDCount = 1, IDs=3 flags = F_SELKEY, IDCount = 1, IDs=3
KEYINFO-TLV = KeyID=1 KEY_DATA=10 KEYINFO-TLV = KeyID=1 KEY_DATA=10
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 1, IDs=2 flags = 0 IDCount = 1, IDs=2
FULLDATA-TLV, V= 20 FULLDATA-TLV, V= 20
Result: Result:
//first operation, SET //first operation, SET
OPER = SET-RESPONSE-TLV OPER = SET-RESPONSE-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 3, IDs=4.20 flags = 0 IDCount = 3, IDs=4.20
RESULT-TLV code = success RESULT-TLV code = success
FULLDATA-TLV, V = valueof(j1),valueof(j2) FULLDATA-TLV, V = valueof(j1),valueof(j2)
// second operation SET - assuming entry 16 was updated // second operation SET - assuming entry 16 was updated
OPER = SET-RESPONSE-TLV OPER = SET-RESPONSE-TLV
Path-data TLV PATH-DATA-TLV
flags = 0 IDCount = 2, IDs=3.16 flags = 0 IDCount = 2, IDs=3.16
Path-Data TLV PATH-DATA-TLV
flags = 0 IDCount = 1, IDs = 2 flags = 0 IDCount = 1, IDs = 2
RESULT-TLV code = success RESULT-TLV code = success
FULLDATA-TLV, Length = XXXX v=20 FULLDATA-TLV, Length = XXXX v=20
14. Selective setting. On table4 -- for indices 1, 3, 5, 7, and 9. 14. Selective setting. On table4 -- for indices 1, 3, 5, 7, and 9.
Replace j1 to 100, j2 to 200, j3 to 300. Leave j4 as is. Replace j1 to 100, j2 to 200, j3 to 300. Leave j4 as is.
PER = SET-TLV PER = SET-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 6 flags = 0, IDCount = 1, IDs = 6
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV, Length = XXXX, V = {100} FULLDATA-TLV, Length = XXXX, V = {100}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV, Length = XXXX, V = {200} FULLDATA-TLV, Length = XXXX, V = {200}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
FULLDATA-TLV, Length = XXXX, V = {300} FULLDATA-TLV, Length = XXXX, V = {300}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV, Length = XXXX, V = {100} FULLDATA-TLV, Length = XXXX, V = {100}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV, Length = XXXX, V = {200} FULLDATA-TLV, Length = XXXX, V = {200}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
FULLDATA-TLV, Length = XXXX, V = {300} FULLDATA-TLV, Length = XXXX, V = {300}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 5 flags = 0, IDCount = 1, IDs = 5
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV, Length = XXXX, V = {100} FULLDATA-TLV, Length = XXXX, V = {100}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV, Length = XXXX, V = {200} FULLDATA-TLV, Length = XXXX, V = {200}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
FULLDATA-TLV, Length = XXXX, V = {300} FULLDATA-TLV, Length = XXXX, V = {300}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 7 flags = 0, IDCount = 1, IDs = 7
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV, Length = XXXX, V = {100} FULLDATA-TLV, Length = XXXX, V = {100}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV, Length = XXXX, V = {200} FULLDATA-TLV, Length = XXXX, V = {200}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
FULLDATA-TLV, Length = XXXX, V = {300} FULLDATA-TLV, Length = XXXX, V = {300}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 9 flags = 0, IDCount = 1, IDs = 9
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
FULLDATA-TLV, Length = XXXX, V = {100} FULLDATA-TLV, Length = XXXX, V = {100}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
FULLDATA-TLV, Length = XXXX, V = {200} FULLDATA-TLV, Length = XXXX, V = {200}
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
FULLDATA-TLV, Length = XXXX, V = {300} FULLDATA-TLV, Length = XXXX, V = {300}
response: response:
OPER = SET-RESPONSE-TLV OPER = SET-RESPONSE-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 6 flags = 0, IDCount = 1, IDs = 6
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 5 flags = 0, IDCount = 1, IDs = 5
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 7 flags = 0, IDCount = 1, IDs = 7
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 9 flags = 0, IDCount = 1, IDs = 9
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 1 flags = 0, IDCount = 1, IDs = 1
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 2 flags = 0, IDCount = 1, IDs = 2
RESULT-TLV RESULT-TLV
Path-data TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs = 3 flags = 0, IDCount = 1, IDs = 3
RESULT-TLV RESULT-TLV
15. Manipulation of table of table examples. Get x1 from table10 15. Manipulation of table of table examples. Get x1 from table10
row with index 4, inside table5 entry 10 row with index 4, inside table5 entry 10
operation = GET-TLV operation = GET-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 5, IDs=7.10.2.4.1 flags = 0 IDCount = 5, IDs=7.10.2.4.1
Results: Results:
operation = GET-RESPONSE-TLV operation = GET-RESPONSE-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 5, IDs=7.10.2.4.1 flags = 0 IDCount = 5, IDs=7.10.2.4.1
FULLDATA-TLV: L=XXXX, V = valueof(x1) FULLDATA-TLV: L=XXXX, V = valueof(x1)
16. From table5's row 10 table10, get X2s based on on the value of 16. From table5's row 10 table10, get X2s based on on the value of
x1 equaling 10 (recall x1 is KeyID 1) x1 equaling 10 (recall x1 is KeyID 1)
operation = GET-TLV operation = GET-TLV
Path-data-TLV PATH-DATA-TLV
flag = F_SELKEY, IDCount=3, IDS = 7.10.2 flag = F_SELKEY, IDCount=3, IDS = 7.10.2
KEYINFO-TLV, KeyID = 1, KEYDATA = 10 KEYINFO-TLV, KeyID = 1, KEYDATA = 10
Path-data TLV PATH-DATA-TLV
IDCount = 1, IDS = 2 //select x2 IDCount = 1, IDS = 2 //select x2
Results: Results:
If x1=10 was at entry 11: If x1=10 was at entry 11:
operation = GET-RESPONSE-TLV operation = GET-RESPONSE-TLV
Path-data-TLV PATH-DATA-TLV
flag = 0, IDCount=5, IDS = 7.10.2.11 flag = 0, IDCount=5, IDS = 7.10.2.11
Path-data TLV PATH-DATA-TLV
flags = 0 IDCount = 1, IDS = 2 flags = 0 IDCount = 1, IDS = 2
FULLDATA-TLV: L=XXXX, V = valueof(x2) FULLDATA-TLV: L=XXXX, V = valueof(x2)
17. Further example of manipulating a table of tables 17. Further example of manipulating a table of tables
Consider table6 which is defined as: Consider table6 which is defined as:
table6: type array, ID = 8 table6: type array, ID = 8
components are: components are:
p1, type u32, ID = 1 p1, type u32, ID = 1
p2, type array, ID = 2, array components of type type-A p2, type array, ID = 2, array components of type type-A
skipping to change at page 121, line 8 skipping to change at page 123, line 8
in one message and one operation. in one message and one operation.
There are two ways to do this: There are two ways to do this:
a) using nesting a) using nesting
b) using a flat path data b) using a flat path data
A. Method using nesting A. Method using nesting
in one message with a single operation in one message with a single operation
operation = SET-TLV operation = SET-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 2, IDs=6.10 flags = 0 IDCount = 2, IDs=6.10
Path-data-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs=1 flags = 0, IDCount = 1, IDs=1
FULLDATA-TLV: L=XXXX, FULLDATA-TLV: L=XXXX,
V = {111} V = {111}
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 2, IDs=2.20 flags = 0 IDCount = 2, IDs=2.20
Path-data-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs=1 flags = 0, IDCount = 1, IDs=1
FULLDATA-TLV: L=XXXX, FULLDATA-TLV: L=XXXX,
V = {222} V = {222}
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 3, IDs=2.30.1 flags = 0, IDCount = 3, IDs=2.30.1
FULLDATA-TLV: L=XXXX, FULLDATA-TLV: L=XXXX,
V = {333} V = {333}
Result: Result:
operation = SET-RESPONSE-TLV operation = SET-RESPONSE-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 2, IDs=6.10 flags = 0 IDCount = 2, IDs=6.10
Path-data-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs=1 flags = 0, IDCount = 1, IDs=1
RESULT-TLV RESULT-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 2, IDs=2.20 flags = 0 IDCount = 2, IDs=2.20
Path-data-TLV PATH-DATA-TLV
flags = 0, IDCount = 1, IDs=1 flags = 0, IDCount = 1, IDs=1
RESULT-TLV RESULT-TLV
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 3, IDs=2.30.1 flags = 0, IDCount = 3, IDs=2.30.1
RESULT-TLV RESULT-TLV
B. Method using a flat path data in B. Method using a flat path data in
one message with a single operation one message with a single operation
operation = SET-TLV operation = SET-TLV
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 3, IDs=6.10.1 flags = 0, IDCount = 3, IDs=6.10.1
FULLDATA-TLV: L=XXXX, FULLDATA-TLV: L=XXXX,
V = {111} V = {111}
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 5, IDs=6.10.1.20.1 flags = 0, IDCount = 5, IDs=6.10.1.20.1
FULLDATA-TLV: L=XXXX, FULLDATA-TLV: L=XXXX,
V = {222} V = {222}
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 7, IDs=6.10.1.20.1.30.1 flags = 0, IDCount = 7, IDs=6.10.1.20.1.30.1
FULLDATA-TLV: L=XXXX, FULLDATA-TLV: L=XXXX,
V = {333} V = {333}
Result: Result:
operation = SET-TLV operation = SET-TLV
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 3, IDs=6.10.1 flags = 0, IDCount = 3, IDs=6.10.1
RESULT-TLV RESULT-TLV
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 5, IDs=6.10.1.20.1 flags = 0, IDCount = 5, IDs=6.10.1.20.1
RESULT-TLV RESULT-TLV
Path-data TLV : PATH-DATA-TLV :
flags = 0, IDCount = 7, IDs=6.10.1.20.1.30.1 flags = 0, IDCount = 7, IDs=6.10.1.20.1.30.1
RESULT-TLV RESULT-TLV
18. Get a whole LFB (all its components, etc.). 18. Get a whole LFB (all its components, etc.).
For example: at startup a CE might well want the entire FE For example: at startup a CE might well want the entire FE
OBJECT LFB. So, in a request targeted at class 1, instance OBJECT LFB. So, in a request targeted at class 1, instance
1, one might find: 1, one might find:
operation = GET-TLV operation = GET-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 0 flags = 0 IDCount = 0
result: result:
operation = GET-RESPONSE-TLV operation = GET-RESPONSE-TLV
Path-data-TLV PATH-DATA-TLV
flags = 0 IDCount = 0 flags = 0 IDCount = 0
FULLDATA-TLV encoding of the FE Object LFB FULLDATA-TLV encoding of the FE Object LFB
Authors' Addresses Authors' Addresses
Ligang Dong Ligang Dong
Zhejiang Gongshang University Zhejiang Gongshang University
149 Jiaogong Road 149 Jiaogong Road
Hangzhou 310035 Hangzhou 310035
P.R.China P.R.China
skipping to change at page 123, line 32 skipping to change at page 125, line 32
Phone: +46 73 277 1788 Phone: +46 73 277 1788
Email: avri@ltu.se Email: avri@ltu.se
Ram Gopal Ram Gopal
Nokia Nokia
5, Wayside Road 5, Wayside Road
Burlington, MA 310035 Burlington, MA 310035
USA USA
Phone: +1-781-993-3685 Phone: +1-781-993-3685
Email: ram.gopal@nokia.com Email: ram.gopal@nsn.com
Robert Haas Robert Haas
IBM IBM
Saumerstrasse 4 Saumerstrasse 4
8803 Ruschlikon 8803 Ruschlikon
Switzerland Switzerland
Phone: Phone:
Email: rha@zurich.ibm.com Email: rha@zurich.ibm.com
Jamal Hadi Salim Jamal Hadi Salim
skipping to change at page 125, line 4 skipping to change at line 5175
Email: hormuzd.m.khosravi@intel.com Email: hormuzd.m.khosravi@intel.com
Weiming Wang Weiming Wang
Zhejiang Gongshang University Zhejiang Gongshang University
149 Jiaogong Road 149 Jiaogong Road
Hangzhou 310035 Hangzhou 310035
P.R.China P.R.China
Phone: +86-571-88057712 Phone: +86-571-88057712
Email: wmwang@mail.zjgsu.edu.cn Email: wmwang@mail.zjgsu.edu.cn
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST 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.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
 End of changes. 125 change blocks. 
229 lines changed or deleted 268 lines changed or added

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