Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start [2023/10/10 08:25] – external edit 127.0.0.1 | en:dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== On-Stick devices support ====== | ||
| - | [FastDPI 12+] | ||
| - | On-stick devices are a good way to save on physical hardware. Fastdpi usually bridges two physical ports (devices). For an on-stick device there is one physical port on which Fastdpi itself creates virtual ports – on the subscriber (subs) and internet (inet) sides. | ||
| - | |||
| - | Each on-stick port is described in a special way: first the base physical port is described with dpdk_device, | ||
| - | |||
| - | < | ||
| - | # base physical port description | ||
| - | dpdk_device=port1: | ||
| - | |||
| - | # on-stick (based on port1 device) description: | ||
| - | onstick_device { | ||
| - | # base device | ||
| - | base=port1 | ||
| - | |||
| - | # a logical expression to determine the direction of the packet (filter) | ||
| - | # If this expression returns true, it means that the package is from the subs side, | ||
| - | # otherwise - from the inet side. | ||
| - | filter=< | ||
| - | |||
| - | # Name of the device from the subs side | ||
| - | subs=subs1 | ||
| - | |||
| - | # Name of the device from the inet side | ||
| - | inet=inet1 | ||
| - | } | ||
| - | |||
| - | # Set the bridges | ||
| - | # The base device port1 CANNOT be part of any bridges | ||
| - | in_dev=subs1 | ||
| - | out_dev=inet1 | ||
| - | </ | ||
| - | |||
| - | Wherever you need to specify a device, you should use virtual devices (in this example '' | ||
| - | |||
| - | The most important part of the on-stick port description is the '' | ||
| - | '' | ||
| - | The terms specify elementary expressions over the L2 properties of a package. There are the following terms (case matters): | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | Examples (recall that '' | ||
| - | * the Q-in-Q network on the subscriber side is terminated in a single VLAN: '' | ||
| - | * heterogeneous network: Q-in-Q or PPPoE on subscriber side in VLAN: '' | ||
| - | * single VLAN network, on the inet side VLAN=609, all other VLANs are subs: '' | ||
| - | * on the inet side, the MAC address of the border is 3c: | ||
| - | |||
| - | A formal description of the '' | ||
| - | < | ||
| - | filter ::= and | and ‘|’ filter | ||
| - | and ::= mult | mult ‘&’ and | ||
| - | mult ::= ‘!’ mult | term | ‘(‘ filter ‘)’ | ||
| - | term ::= vlan | qinq | pppoe | smac | dmac | ||
| - | |||
| - | vlan ::= ‘vlan’ | ‘vlan’ ‘(‘ list_int ‘)’ | ||
| - | qinq ::= ‘qinq’ | ||
| - | pppoe ::= ‘pppoe’ | ||
| - | smac ::= ‘smac’ ‘(‘ mac_address ‘)’ | ||
| - | dmac ::= ‘dmac’ ‘(‘ mac_address ‘)’ | ||
| - | mac_address ::= xx: | ||
| - | </ | ||