🦄 refactor: DPISDN-61:refactor the way of building container and helmchart package for dp-trace-telemetry,packet-io-engine,trex,log-collector and nic-uio-binder.
This commit is contained in:
20
containers/packet-io-engine/Dockerfile.j2
Normal file
20
containers/packet-io-engine/Dockerfile.j2
Normal file
@@ -0,0 +1,20 @@
|
||||
{% import 'dockerfile-macros.j2' as macros -%}
|
||||
ARG BASE_IMAGE
|
||||
FROM ${BASE_IMAGE}
|
||||
|
||||
RUN {{ macros.install_packages(packages) }} && \
|
||||
{{ macros.clean_after_install_packages() }} && \
|
||||
sed -Ei -c "s|/opt/mrzcpd|/opt/tsg/mrzcpd|g" /etc/profile.d/mrzcpd.sh && \
|
||||
sed -Ei -c "s|/opt/mrzcpd|/opt/tsg/mrzcpd|g" /opt/tsg/mrzcpd/lib/pkgconfig/mrzcpd.pc
|
||||
# files
|
||||
COPY files/mrzcpd.conf /etc/ld.so.conf.d/
|
||||
COPY files/mrzcpd /etc/sysconfig/
|
||||
|
||||
# templates
|
||||
COPY templates/* /templates/
|
||||
# scripts
|
||||
COPY --chmod=755 entrypoint.sh /usr/local/bin/
|
||||
|
||||
WORKDIR /opt/tsg/mrzcpd/
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
3
containers/packet-io-engine/build.mk
Normal file
3
containers/packet-io-engine/build.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
rule_target := packet-io-engine
|
||||
rule_prerequisites := $(DEP_ENV_FILES) $(YUM_REPO_FILE) $(DOCKERFILE_MACROS) $(BUILD_DIR)/base/$(BUILD_DONE_FILE)
|
||||
rule_recipes := $(call build_image_from_dockerfile,$(rule_target),$(IMAGE_REGISTRY)/base:$(IMAGE_TAG),$(IMAGE_REGISTRY)/$(rule_target):$(IMAGE_TAG))
|
||||
20
containers/packet-io-engine/entrypoint.sh
Normal file
20
containers/packet-io-engine/entrypoint.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh -ex
|
||||
source /usr/local/bin/entrypoint_public.sh
|
||||
# start
|
||||
|
||||
parse_args "$@"
|
||||
|
||||
|
||||
render_template mrglobal.conf.j2 /opt/tsg/mrzcpd/etc/mrglobal.conf
|
||||
|
||||
|
||||
|
||||
if [ ${IS_ENABLE_PRESTART} == "true" ]; then
|
||||
enable_prestart
|
||||
fi
|
||||
|
||||
if [ ${IS_ENABLE_INTERACTIVE_STARTUP} == "true" ]; then
|
||||
enable_interactive_startup
|
||||
fi
|
||||
|
||||
exec /opt/tsg/mrzcpd/bin/mrzcpd -c /opt/tsg/mrzcpd/etc/mrglobal.conf -s /opt/tsg/mrzcpd/etc/mrglobal.dynamic.conf
|
||||
3
containers/packet-io-engine/files/mrzcpd
Normal file
3
containers/packet-io-engine/files/mrzcpd
Normal file
@@ -0,0 +1,3 @@
|
||||
MRZCPD_ROOT=/opt/tsg/mrzcpd
|
||||
HUGEPAGE_NUM_1G=32
|
||||
DEFAULT_UIO_MODULE="vfio_pci"
|
||||
2
containers/packet-io-engine/files/mrzcpd.conf
Normal file
2
containers/packet-io-engine/files/mrzcpd.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
# Marsio ZeroCopy Driver Library Path
|
||||
/opt/tsg/mrzcpd/lib
|
||||
19
containers/packet-io-engine/manifest.yaml
Normal file
19
containers/packet-io-engine/manifest.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
packages:
|
||||
- name: mlnx-ofed-user-space-only-all
|
||||
version: 5.17.15-1.el8.x86_64.noarch
|
||||
install_command: dnf
|
||||
- name: mrzcpd-icelake-server
|
||||
version: 4.8.21.2d714a5
|
||||
download_command: dnf
|
||||
install_command: rpm
|
||||
install_command_options: "--prefix /opt/tsg/mrzcpd"
|
||||
- name: mrzcpd-znver1
|
||||
version: 4.8.21.2d714a5
|
||||
download_command: dnf
|
||||
install_command: rpm
|
||||
install_command_options: "--prefix /opt/tsg/mrzcpd"
|
||||
- name: mrzcpd-corei7
|
||||
version: 4.8.21.2d714a5
|
||||
download_command: dnf
|
||||
install_command: rpm
|
||||
install_command_options: "--prefix /opt/tsg/mrzcpd"
|
||||
473
containers/packet-io-engine/templates/mrglobal.conf.j2
Normal file
473
containers/packet-io-engine/templates/mrglobal.conf.j2
Normal file
@@ -0,0 +1,473 @@
|
||||
{%- set nf_nic_list = [] -%}
|
||||
{%- set mirr_nic_list = [] -%}
|
||||
{%- set ep_nic_l2_list = [] -%}
|
||||
{%- set ep_nic_l3_list = [] -%}
|
||||
{%- set sid_step = 4 -%}
|
||||
{%- set cycle = mrzcpd.nf_count -%}
|
||||
{%- set enter = "\n" -%}
|
||||
|
||||
{%- for index in range(cycle) %}
|
||||
{{- nf_nic_list.append( 'nf_'+loop.index0|string+'_fw') or "" }}
|
||||
{{- nf_nic_list.append( 'nf_'+loop.index0|string+'_proxy') or "" }}
|
||||
{{- nf_nic_list.append( 'nf_'+loop.index0|string+'_sce') or "" }}
|
||||
{{- nf_nic_list.append( 'nf_'+loop.index0|string+'_shaping_engine') or "" }}
|
||||
{{- ep_nic_l2_list.append( 'ep_'+loop.index0|string+'_sce_l2') or "" }}
|
||||
{{- ep_nic_l3_list.append( 'ep_'+loop.index0|string+'_sce_l3') or "" }}
|
||||
{{- mirr_nic_list.append( 'mirr_'+loop.index0|string+'_fw') or "" }}
|
||||
{{- mirr_nic_list.append( 'mirr_'+loop.index0|string+'_proxy') or "" }}
|
||||
{%- endfor -%}
|
||||
|
||||
[device]
|
||||
device=
|
||||
{%- if mrzcpd.interfaces -%}
|
||||
{%- for interface in mrzcpd.interfaces -%}{{ interface.name }}{%- if not loop.last %},{% endif %}{%- endfor -%},
|
||||
{%- endif -%}
|
||||
{%- if mrzcpd.virtual_interfaces -%}
|
||||
{%- if mrzcpd.interfaces %},{%- endif -%}
|
||||
{%- for interface in mrzcpd.virtual_interfaces -%}{{ interface.name }}{%- if not loop.last %},{% endif %}{%- endfor -%},
|
||||
{%- endif -%}
|
||||
{{nf_nic_list|join(',')}},{{ep_nic_l2_list|join(',')}},{{ep_nic_l3_list|join(',')}},{{mirr_nic_list|join(',')}},nf_inject,virtio_dign_c,virtio_dign_s
|
||||
sz_tunnel={{ mrzcpd.pktmbuf_queue_size }}
|
||||
sz_buffer=0
|
||||
|
||||
# Configuration settings for the physical device (Phy dev).
|
||||
{%- for interface in mrzcpd.interfaces %}
|
||||
[device:{{ interface.name }}]
|
||||
{%- if interface.address is defined %}
|
||||
in_addr={{ interface.address }}
|
||||
in_mask={{ interface.mask | default('') }}
|
||||
{%- if interface.gateway is defined %}
|
||||
gateway={{ interface.gateway }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
nr_rxdesc=8192
|
||||
nr_txdesc=8192
|
||||
allmulticast=1
|
||||
rssmode=3
|
||||
promisc={{ interface.promisc | default(0) }}
|
||||
mtu={{ interface.mtu | default(1500) }}
|
||||
{%- if interface.role == "5" %}
|
||||
driver=1
|
||||
{%- else %}
|
||||
driver=0
|
||||
{%- endif %}
|
||||
role={{ interface.role | default('') }}
|
||||
{%- if interface.type is defined %}
|
||||
type={{ interface.type }}
|
||||
{%- endif %}
|
||||
{%- if interface.vlan is defined %}
|
||||
{%- if interface.vlan|length > 0 %}
|
||||
allow_vlan_ids={%- for vlan in interface.vlan -%}
|
||||
{%- if not loop.first %}, {% endif -%}{{ vlan.vlan_id }}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- if interface.en_representor is defined %}
|
||||
en_representor={{ interface.en_representor }}
|
||||
{%- endif %}
|
||||
{%- if interface.representor_ns is defined %}
|
||||
representor_ns={{ interface.representor_ns }}
|
||||
{%- endif %}
|
||||
{%- if interface.representor_dev is defined %}
|
||||
representor_dev={{ interface.representor_dev }}
|
||||
{%- endif %}
|
||||
{%- if interface.rxcore is defined %}
|
||||
rx_cores={{ interface.rxcore }}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
# Configuration settings for network bonding (bond) functionality.
|
||||
{%- for interface in mrzcpd.virtual_interfaces %}
|
||||
{%- if interface.type == "1" %}
|
||||
[device:{{ interface.name }}]
|
||||
{%- if interface.address %}
|
||||
in_addr={{ interface.address }}
|
||||
in_mask={{ interface.mask }}
|
||||
{%- if interface.gateway %}
|
||||
gateway={{ interface.gateway }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
rssmode=3
|
||||
{%- if interface.promisc %}
|
||||
promisc={{ interface.promisc }}
|
||||
{%- endif %}
|
||||
{%- if interface.mtu %}
|
||||
mtu={{ interface.mtu }}
|
||||
{%- endif %}
|
||||
{%- if interface.role == "5" %}
|
||||
driver=1
|
||||
{%- else %}
|
||||
driver=0
|
||||
{%- endif %}
|
||||
role={{ interface.role }}
|
||||
{%- if interface.type %}
|
||||
type={{ interface.type }}
|
||||
{%- endif %}
|
||||
{%- if interface.bond_mode %}
|
||||
bond_mode={{ interface.bond_mode }}
|
||||
{%- endif %}
|
||||
{%- if interface.bond_xmit_policy %}
|
||||
bond_xmit_policy={{ interface.bond_xmit_policy }}
|
||||
{%- endif %}
|
||||
{%- if interface.slaves %}
|
||||
bond_slaves={%- for slave in interface.slaves %}{%- if not loop.first %},{%- endif %}{{ slave.interface }}{%- endfor %}
|
||||
{%- endif %}
|
||||
{%- if interface.rxcore %}
|
||||
rx_cores={{ interface.rxcore }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# Configuration settings for the virtual device (virtual dev) management.
|
||||
[device:virtio_dign_c]
|
||||
driver=1
|
||||
role=1
|
||||
|
||||
[device:virtio_dign_s]
|
||||
driver=1
|
||||
role=1
|
||||
|
||||
# Configuration settings for the representational (represent) device.
|
||||
{%- for interface in mrzcpd.virtual_interfaces %}
|
||||
{%- if interface.en_representor == "1" %}
|
||||
[device:{{ interface.name }}]
|
||||
{%- if interface.promisc %}
|
||||
promisc={{ interface.promisc }}
|
||||
{%- endif %}
|
||||
{%- if interface.mtu %}
|
||||
mtu={{ interface.mtu }}
|
||||
{%- endif %}
|
||||
{%- if interface.role == "5" %}
|
||||
driver=1
|
||||
{%- else %}
|
||||
driver=0
|
||||
{%- endif %}
|
||||
role={{ interface.role }}
|
||||
{%- if interface.vlan and interface.vlan | length > 0 %}
|
||||
allow_vlan_ids={%- for vlan in interface.vlan %}{%- if not loop.first %},{%- endif %}{{ vlan.vlan_id }}{%- endfor %}
|
||||
{%- endif %}
|
||||
en_representor={{ interface.en_representor }}
|
||||
{%- if interface.representor_ns %}
|
||||
representor_ns={{ interface.representor_ns }}
|
||||
{%- endif %}
|
||||
{%- if interface.rxcore %}
|
||||
rx_cores={{ interface.rxcore }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# Configuration settings for the VLAN (Virtual Local Area Network) sub-interface.
|
||||
{%- for interface in mrzcpd.interfaces %}
|
||||
{%- if interface.vlan is defined %}
|
||||
{%- for vlan in interface.vlan %}
|
||||
{%- if vlan.ipv4_address is defined or vlan.ipv6_address is defined %}
|
||||
[device:{{ interface.name }}:vlan:{{ vlan.vlan_id }}]
|
||||
{%- if vlan.ipv4_address is defined %}
|
||||
in_addr_v4={{ vlan.ipv4_address }}
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv4_mask is defined %}
|
||||
in_mask_v4={{ vlan.ipv4_mask }}
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv6_address is defined %}
|
||||
in_addr_v6={{ vlan.ipv6_address }}
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv6_mask is defined %}
|
||||
in_mask_v6={{ vlan.ipv6_mask }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- for interface in mrzcpd.virtual_interfaces %}
|
||||
{%- if interface.vlan is defined %}
|
||||
{%- for vlan in interface.vlan %}
|
||||
{%- if vlan.ipv4_address is defined or vlan.ipv6_address is defined %}
|
||||
[device:{{ interface.name }}:vlan:{{ vlan.vlan_id }}]
|
||||
{%- if vlan.ipv4_address is defined %}
|
||||
in_addr_v4={{ vlan.ipv4_address }}
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv4_mask is defined %}
|
||||
in_mask_v4={{ vlan.ipv4_mask }}
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv6_address is defined %}
|
||||
in_addr_v6={{ vlan.ipv6_address }}
|
||||
{%- endif %}
|
||||
{%- if vlan.ipv6_mask is defined %}
|
||||
in_mask_v6={{ vlan.ipv6_mask }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# Configuration settings for the shmdey device.
|
||||
[device:nf_inject]
|
||||
driver=3
|
||||
role=4
|
||||
{% for index in range(cycle) %}
|
||||
[device:nf_{{ index }}_fw]
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:nf_{{ index }}_sce]
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:ep_{{ index }}_sce_l2]
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:ep_{{ index }}_sce_l3]
|
||||
en_representor=1
|
||||
representor_ns=1
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:nf_{{ index }}_shaping_engine]
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:nf_{{ index }}_proxy]
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:mirr_{{ index }}_fw]
|
||||
driver=3
|
||||
role=4
|
||||
|
||||
[device:mirr_{{ index }}_proxy]
|
||||
driver=3
|
||||
role=4
|
||||
{% endfor %}
|
||||
|
||||
# This module handles the global configuration settings.
|
||||
[service]
|
||||
iocore={{ mrzcpd.cpu_affinity | join (',') }}
|
||||
distmode={{ mrzcpd.distmode }}
|
||||
hashmode=0
|
||||
poll_wait_throttle={{ mrzcpd.enable_poll_wait_throttle | default(0) }}
|
||||
poll_wait_enable=1
|
||||
|
||||
[eal]
|
||||
virtaddr=0x500000000000
|
||||
loglevel=7
|
||||
huge-dir=/run/mrzcpd/hugepages
|
||||
legacy_mem=0
|
||||
|
||||
[keepalive]
|
||||
check_spinlock=1
|
||||
|
||||
[ctrlzone]
|
||||
ctrlzone0=tunnat,64
|
||||
|
||||
[pool]
|
||||
create_mode={{ mrzcpd.pktmbuf_pool_create_mode }}
|
||||
sz_direct_pktmbuf={{ mrzcpd.pktmbuf_pool_max_elements_count | int }}
|
||||
sz_indirect_pktmbuf={{ mrzcpd.indirect_pktmbuf | default(0) }}
|
||||
sz_cache=512
|
||||
sz_data={{ mrzcpd.pktmbuf_max_size | default(0) }}
|
||||
|
||||
[buffer_leak_detect]
|
||||
check_buffer_leak={{ mrzcpd.enable_check_pktmbuf_leak | default(0) }}
|
||||
|
||||
[ctrlmsg]
|
||||
listen_addr=0.0.0.0
|
||||
listen_port=46789
|
||||
|
||||
[rpc]
|
||||
addr=127.0.0.1
|
||||
port=56789
|
||||
|
||||
[limits]
|
||||
nr_max_ef_adapters={{ mrzcpd.nr_max_ef_adapters | default(0) }}
|
||||
nr_max_vwires={{ mrzcpd.nr_max_vwires | default(0) }}
|
||||
nr_max_tera_adapters={{ mrzcpd.nr_max_tera_adapters | default(0) }}
|
||||
nr_max_link_dbs={{ mrzcpd.nr_max_link_dbs | default(0) }}
|
||||
|
||||
# This module is used to configure the access mode settings.
|
||||
[ef_adapters]
|
||||
sid_start=100
|
||||
sid_end=200
|
||||
{%- for service in mrzcpd.services %}
|
||||
{%- if service.type == "etherfabric_adapter" %}
|
||||
[ef_adapter:{{ loop.index0 }}]
|
||||
ef_adapter_id={{ service.id }}
|
||||
{%- if service.mode == "virtual-wire" %}
|
||||
mode=1
|
||||
{%- elif service.mode == "tap" %}
|
||||
mode=2
|
||||
{%- endif %}
|
||||
listen_device={{ service.listen_on_device | default('') }}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# The configuration sets the access mode to vwire mode.
|
||||
[vwires]
|
||||
sid_start=300
|
||||
sid_end=400
|
||||
|
||||
[vwire:0]
|
||||
vwire_id=0
|
||||
interface_int=virtio_dign_c
|
||||
interface_ext=virtio_dign_s
|
||||
{% for virtual_wire in mrzcpd.virtual_wires %}
|
||||
[vwire:{{ loop.index0 + 1 }}]
|
||||
vwire_id={{ virtual_wire.id }}
|
||||
interface_int={{ virtual_wire.internal_interface }}
|
||||
interface_ext={{ virtual_wire.external_interface }}
|
||||
{%- if virtual_wire.obp_device is defined %}
|
||||
obp_device={{ virtual_wire.obp_device }}
|
||||
{%- endif %}
|
||||
{%- if virtual_wire.obp_segment is defined %}
|
||||
obp_segment={{ virtual_wire.obp_segment }}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# The configuration sets the access mode to tera adapter mode.
|
||||
[tera_adapters]
|
||||
sid_start=500
|
||||
sid_end=600
|
||||
{%- for service in mrzcpd.services %}
|
||||
{%- if service.type == "tera_adapter" %}
|
||||
[tera_adapter:{{ loop.index0 }}]
|
||||
tera_adapter_id={{ service.id }}
|
||||
listen_device={{ service.listen_on_device | default('') }}
|
||||
vlan_int={{ service.vlan_int | default('') }}
|
||||
vlan_ext={{ service.vlan_ext | default('') }}
|
||||
mac_flipping={{ service.mac_flipping | default(0) }}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# This module is used to configure health check settings.
|
||||
{%- for index in range(cycle) %}
|
||||
[health_check:{{ index * sid_step }}]
|
||||
name=nf{{ index }}_fw_health_check
|
||||
device=nf_{{ index }}_fw
|
||||
method=0
|
||||
multiplier=20
|
||||
interval=10
|
||||
|
||||
[health_check:{{ index * sid_step + 1 }}]
|
||||
name=nf{{ index }}_proxy_health_check
|
||||
device=nf_{{ index }}_proxy
|
||||
method=0
|
||||
multiplier=20
|
||||
interval=10
|
||||
|
||||
[health_check:{{ index * sid_step + 2 }}]
|
||||
name=nf{{ index }}_sce_health_check
|
||||
device=nf_{{ index }}_sce
|
||||
method=0
|
||||
multiplier=20
|
||||
interval=10
|
||||
|
||||
[health_check:{{ index * sid_step + 3 }}]
|
||||
name=nf{{ index }}_shaping_engine_health_check
|
||||
device=nf_{{ index }}_shaping_engine
|
||||
method=0
|
||||
multiplier=20
|
||||
interval=10
|
||||
{% endfor %}
|
||||
[health_check:{{ cycle * sid_step }}]
|
||||
name=nf_inject_health_check
|
||||
device=nf_inject
|
||||
method=0
|
||||
multiplier=20
|
||||
interval=10
|
||||
|
||||
# This module is used for configuring the service load balancing settings.
|
||||
[service_lb]
|
||||
sid_start={{ mrzcpd.service_lb.sid_range_start }}
|
||||
sid_end={{ mrzcpd.service_lb.sid_range_end }}
|
||||
|
||||
{%- for index in range(cycle) %}
|
||||
{%- set load_balance_index = index * sid_step %}
|
||||
[load_balance:{{ load_balance_index }}]
|
||||
sid={{ mrzcpd.service_lb.sid_range_start + load_balance_index }}
|
||||
mode=0
|
||||
devices=nf_{{ index }}_fw,0
|
||||
health_check_sessions=nf{{ index }}_fw_health_check
|
||||
|
||||
[load_balance:{{ load_balance_index + 1 }}]
|
||||
sid={{ mrzcpd.service_lb.sid_range_start + load_balance_index + 1 }}
|
||||
mode=0
|
||||
devices=nf_{{ index }}_proxy,0
|
||||
health_check_sessions=nf{{ index }}_proxy_health_check
|
||||
|
||||
[load_balance:{{ load_balance_index + 2 }}]
|
||||
sid={{ mrzcpd.service_lb.sid_range_start + load_balance_index + 2 }}
|
||||
mode=0
|
||||
devices=nf_{{ index }}_sce,0
|
||||
health_check_sessions=nf{{ index }}_sce_health_check
|
||||
|
||||
[load_balance:{{ load_balance_index + 3 }}]
|
||||
sid={{ mrzcpd.service_lb.sid_range_start + load_balance_index + 3 }}
|
||||
mode=0
|
||||
devices=nf_{{ index }}_shaping_engine,0
|
||||
health_check_sessions=nf{{ index }}_shaping_engine_health_check
|
||||
{% endfor %}
|
||||
[load_balance:{{ cycle * sid_step }}]
|
||||
sid={{ mrzcpd.service_lb.sid_range_start + cycle * sid_step }}
|
||||
mode=0
|
||||
devices=nf_inject,0
|
||||
health_check_sessions=nf_inject_health_check
|
||||
|
||||
# This module is responsible for configuring the link database (linkdb) settings.
|
||||
{%- for linkdb in mrzcpd.linkdb %}
|
||||
[link_db:{{ linkdb.id }}]
|
||||
type={{ linkdb.type }}
|
||||
traffic_link_id={{ linkdb.traffic_link_id }}
|
||||
{%- if linkdb.vwire_id is defined %}
|
||||
vwire_id={{ linkdb.vwire_id }}
|
||||
{%- endif %}
|
||||
{%- if linkdb.ef_ip_addr is defined and linkdb.ef_link_id is defined %}
|
||||
ef_ip_addr={{ linkdb.ef_ip_addr }}
|
||||
ef_link_id={{ linkdb.ef_link_id }}
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
|
||||
# This module is used for configuring the network bridge settings.
|
||||
[bridge:0]
|
||||
{%- if mrzcpd.service_chaining.vxlan_interface is defined %}
|
||||
master_device={{ mrzcpd.service_chaining.vxlan_interface }}
|
||||
devices={{ mrzcpd.service_chaining.vxlan_interface }},{{ ep_nic_l3_list |join(',')}}
|
||||
{%- else %}
|
||||
devices={{ ep_nic_l3_list |join(',')}}
|
||||
{%- endif %}
|
||||
|
||||
[bridge:1]
|
||||
{%- if mrzcpd.traffic_mirror.interface is defined %}
|
||||
master_device={{ mrzcpd.traffic_mirror.interface }}
|
||||
devices={{ mrzcpd.traffic_mirror.interface }},{{ mirr_nic_list |join(',')}}
|
||||
{%- else %}
|
||||
devices={{ mirr_nic_list |join(',')}}
|
||||
{%- endif %}
|
||||
|
||||
[bridge:2]
|
||||
{%- if mrzcpd.service_chaining.vlan_interface is defined %}
|
||||
master_device={{ mrzcpd.service_chaining.vlan_interface }}
|
||||
devices={{ mrzcpd.service_chaining.vlan_interface }},{{ ep_nic_l2_list |join(',')}}
|
||||
{%- else %}
|
||||
devices={{ ep_nic_l2_list |join(',')}}
|
||||
{%- endif %}
|
||||
|
||||
# This module is responsible for configuring the static classifier rules.
|
||||
{%- for index in range(cycle) %}
|
||||
[classifier_rule:{{ index }}]
|
||||
rule_id={{ index + 1 }}
|
||||
dst_ip_addr_v4=192.0.2.{{ index + 101 }}
|
||||
dst_ip_mask_v4=32
|
||||
action=2
|
||||
priority=0
|
||||
sid={{ index * sid_step + 1000 }}
|
||||
vwire_id=0
|
||||
{% endfor %}
|
||||
{%- for index in range(cycle) %}
|
||||
[classifier_rule:{{ index + cycle }}]
|
||||
rule_id={{ index + cycle + 1 }}
|
||||
src_ip_addr_v4=192.0.2.{{ index + 101 }}
|
||||
src_ip_mask_v4=32
|
||||
action=2
|
||||
priority=0
|
||||
sid={{ index * sid_step + 1000 }}
|
||||
vwire_id=0
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,98 @@
|
||||
{%- for obp in obp_devices -%}
|
||||
[olp_device:{{loop.index0}}]
|
||||
name = {{ obp.name }}
|
||||
type = {{ obp.type }}
|
||||
connect = {{ obp.connect }}
|
||||
in_addr = {{ obp.address }}
|
||||
port = {{ obp.port }}
|
||||
{% for seg in obp.segment %}
|
||||
[{{obp.name}}:{{seg.id}}]
|
||||
state = {{ seg.workline}}
|
||||
heartbeat = {{ seg.heartbeat_mode }}
|
||||
heartbeat_send_interval_in_ms= {{ seg.hb_send_interval_in_ms }}
|
||||
heartbeat_timeout_interval_in_ms= {{ seg.hb_timeout_interval_in_ms}}
|
||||
heartbeat_lost_threshold = {{ seg.hb_lost_threshold }}
|
||||
nonrevertive_mode = {{ seg.nonrevertive_mode }}
|
||||
{% endfor %}
|
||||
{%- endfor %}
|
||||
{% for rule in ruleset %}
|
||||
[classifier_rule:{{ loop.index0 }}]
|
||||
{%- if rule.RuleId is defined %}
|
||||
rule_id={{ rule.RuleId }}
|
||||
{%- endif %}
|
||||
ruleset_type=0
|
||||
{%- if rule.SrcIpV4 is defined %}
|
||||
src_ip_addr_v4={{ rule.SrcIpV4 }}
|
||||
{%- if rule.SrcIpMask is defined %}
|
||||
src_ip_mask_v4={{ rule.SrcIpMask }}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%- if rule.DstIpV4 is defined %}
|
||||
dst_ip_addr_v4={{ rule.DstIpV4 }}
|
||||
{%- if rule.DstIpMask is defined %}
|
||||
dst_ip_mask_v4={{ rule.DstIpMask }}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%- if rule.SrcIpV6 is defined %}
|
||||
src_ip_addr_v6={{ rule.SrcIpV6 }}
|
||||
{%- if rule.SrcIpMask is defined %}
|
||||
src_ip_mask_v6={{ rule.SrcIpMask }}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%- if rule.DstIpV6 is defined %}
|
||||
dst_ip_addr_v6={{ rule.DstIpV6 }}
|
||||
{%- if rule.DstIpMask is defined %}
|
||||
dst_ip_mask_v6={{ rule.DstIpMask }}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{%- if rule.SrcPortLow is defined %}
|
||||
src_port_start={{ rule.SrcPortLow }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.SrcPortHigh is defined %}
|
||||
src_port_end={{ rule.SrcPortHigh}}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.DstPortLow is defined %}
|
||||
dst_port_start={{ rule.DstPortLow }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.DstPortHigh is defined %}
|
||||
dst_port_end={{ rule.DstPortHigh }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.Proto is defined %}
|
||||
proto={{ rule.Proto }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.Priority is defined %}
|
||||
priority={{ rule.Priority }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.Sid is defined %}
|
||||
sid={{ rule.Sid }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.VwireId is defined %}
|
||||
vwire_id={{ rule.VwireId }}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.EfId is defined %}
|
||||
ef_adapter_id={{rule.EfId}}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if rule.TeraId is defined %}
|
||||
tera_adapter_id={{ rule.TeraId }}
|
||||
{%- endif %}
|
||||
action=2
|
||||
{% endfor %}
|
||||
|
||||
[dp_trace_rule]
|
||||
Reference in New Issue
Block a user