Extending Network-virtualization Platforms by using a Specialized Packet Header
and Node Plug-ins
Yasusi Kanada
Hitachi, Ltd., Japan
Outline
►VNode infrastructure is an architecture and testbed for network virtualization.
■ A VNode means a physical network node (not virtual node).
■ Developers can create slices (i.e., virtual networks) using predefined virtual-resource types.
►A plug-in architecture for VNode, which was proposed in previous papers, enables introducing new types.
■ Slice developers may require new virtual-resource types.
■ New virtual-resource types can be defined and implemented by using the plug-in architecture.
►Proposal: A method using plug-in-specific (resource-type-specific) packet headers
■ This method enables introducing new network-wide functions by new resource-type and plug-ins without modifying slices.
VNode Infrastructure and Slices
(previously proposed)
►Developers can create slices using predefined virtual- resource types (i.e., virtual-node and -link types).
VNode VNode
VNode
Virtual node
Virtual node
Virtual node Slice
developer
.. .
.. .
Management node
<linkSliver type="link" subtype="GRE">
<vports>
<vport name="vport1" />
<vport name="vport2" />
</vports>
</linkSliver>
<nodeSliver>
<instance type="…"
subtype="SlowPath_VM">
…
</instance>
<vports>
<vport name="vport1"/>
…
<vport name="vportN"/>
</vports>
</nodeSliver>
VNode
infrastructure
Slice
(virtual network) Slice definition
VNode Predefined
types Predefined
types
Deeply programmable
Operator
VNode VNode VNode
Virtual node
Virtual node
Virtual node Slice
developer
.. .
.. .
Management node
<linkSliver type="link"
subtype="new-link-type">
<vports>
<vport name="vport1" />
<vport name="vport2" />
</vports>
</linkSliver>
<nodeSliver>
<instance type="…"
subtype="new-node-type">
…
</instance>
<vports>
<vport name="vport1"/>
…
<vport name="vportN"/>
</vports>
</nodeSliver>
VNode
infrastructure
Slice Slice definition
VNode
Predefined types New types
Plug-in Architecture
(previously proposed)
►New virtual-resource types can be defined and implemented by using the plug-in architecture.
New resource types (new function)
Plug-ins Plug-ins
Plug-ins Plug-ins
Added by the operator
(or vendor) Operator
VNode VNode VNode
Virtual node
Virtual node
Virtual node Slice
developer
.. .
.. .
Management node
<linkSliver type="link"
subtype="new-link-type">
<vports>
<vport name="vport1" />
<vport name="vport2" />
</vports>
</linkSliver>
<nodeSliver>
<instance type="…"
subtype=“old-node-type">
…
</instance>
<vports>
<vport name="vport1"/>
…
<vport name="vportN"/>
</vports>
</nodeSliver>
VNode
infrastructure
Slice Old slice definition
VNode New link
type
Platform-extension w/o Slice Modification:
New Proposal
►The proposed method enables introducing new
network-wide functions by new link-type and plug-ins without modifying slices.
Plug-ins
No new function (no update in programs)
New network- wide substrate
function Plug-ins
Plug-ins Plug-ins
Co-operation Co-operation Co-operation Co-operation
Operator
Platform-extension w/o Slice Modification:
Method
►New functions and co-operation of plug-ins are
introduced by resource-type-specific packet headers.
►Data plane is extended:
Base platform
header Plug-in header 1
VNode Plug-ins
Data plug-in 1 Base data-plane
component
Data plug-in 2
Data plug-in 3
Data plug-in 4
Plug-in
header 2 Plug-in
header 3 Plug-in
header 4 Packet on slice Platform header
Packet
Extended VNode VNode
Plug-ins
Hidden from slices
Example of Using Platform-extension:
Network-wide Delay Measurement
►Network-wide delay can be measured without affecting slice design/implementation by using a new link type.
►The plug-in header contains a timestamp.
VNode VNode
VNode
Virtual node
VNode infrastructure
Slice
VNode
Terminal Virtual Terminal
node Virtual
node
Packet Packet
Packet Packet
Plug-in Plug-in
Plug-in
Plug-in
Time = 0 Time?
Ingress edge Egress edge
Packet
ts ts Packet
Timestamp Timestamp
Timestamp is hidden
Problem: Packet Identification in Programmable Slices
►Packets must be identified to track them (i.e., to measure the delay).
►Packet identity depends on the node function.
■ Packets may be absorbed, generated, or duplicated by the node program.
Virtual
Slice node
Terminal Virtual Terminal
node Virtual
node
Packet Packet
Packet Packet
must be identified
VNode Virtual
node VNode
Virtual
node No
packet
VNode Virtual No node
packet
Packet
Packet
Packet Packet
Packet
Absorption Generation Duplication
Solution: Slice Supplies Packet Id to Plug-ins
►The slice (developer) must define the identity of packets.
■ Simple identity: to specify identifier field.
■ Generic identity: to specify identity function.
►The plug-in identifies packets.
■ It removes and stores a platform header from a packet and restores it to the packet.
id
p id = f(p)
td id VNode
Virtual node
Plug-ins
id id
id td
Restore Identify
Remove and store
Evaluation: Conditions
►A VLAN-based link type with delay measurement function (called MVL type) was introduced.
►The plug-in for MVL type was implemented by using network processors (NPs).
■ Cavium Octeon NP with twelve 750-MHz cores was used.
►The delay between two simulated terminals with two VNodes were measured.
■ Two terminals were simulated by one PC to avoid synchronization problem.
VNode VNode
Octeon
(NP) Octeon
MVL link (NP) Measure-
ment GW Terminal
(program) Terminal
(program) Measure-
ment GW
sw sw
MVL link MVL link
PC for measurement
Timestamp handling and header conversion
Timestamp insertion Timestamp deletion
Evaluation: Results
►Evaluation results
■ Delay: 89 µS (σ = 12 µS) / node.
■ Timestamp (TS) handling and header conversion (required for virtual-link processing:
Implementation Throughput (Gbps)Throughput (Gbps)** Program lines Implementation
TS insertion TS deletion
Program lines
NP program (in Phonepl) 10.0† 9.5† 99‡ Xeon program (in C)** 2.3† (4.0††) 2.2† (4.0††) 190‡
*Packet size: 1024 B. ** Promiscuous mode is used. †No packet loss (< 10-6)
†† Packet loss ratio = 10-3 ‡Comment-only lines are not counted.
Conclusion
►A method for introducing new functions without updating slice implementation is proposed.
■ Resource-type-specific (plug-in-specific) packet headers are used.
■ The packet headers are processed by the plug-in in each VNode.
►This method was applied to measurements of network edge-to-edge delay.
■ A hidden timestamp in each packet is used.
■ Timestamps do not affect slices; i.e., slices do not see timestamps.
►A virtual link with delay-measurement function was evaluated.
■ The throughput was 10-Gbps (i.e., wire rate).
■ The latency was less than 100 µS.
►Future work
■ Implementation of other node/link functions.
■ Handling multiple plug-in-specific headers.