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 header 1Plug-in
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 header 3Plug-in header 4Plug-in Packet on slice Platform header
Packet
Extended VNode VNode
Plug-ins
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 node
Slice
Terminal Virtual Terminal
node Virtual node
Packet Packet Packet Packet must be identified VNode Virtual node VNode Virtual node packetNo VNode Virtual node No packet Packet Packet Packet Packet Packet
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) MVL link Octeon(NP) Measure-ment GW Terminal
(program) Measure-ment GW Terminal (program)
sw sw
MVL link MVL link
PC for measurement
Timestamp handling and header conversion
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)
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.