• 検索結果がありません。

Extending Network-virtualization Platforms ... - Semantic Scholar

N/A
N/A
Protected

Academic year: 2023

シェア "Extending Network-virtualization Platforms ... - Semantic Scholar"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)

Extending Network-virtualization Platforms by using a Specialized Packet Header

and Node Plug-ins

Yasusi Kanada

Hitachi, Ltd., Japan

(2)

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.

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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.

(12)

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.

参照

関連したドキュメント