Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions data/config-mode-dependencies/vyos-vpp.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"vpp_interfaces_vxlan": ["vpp_interfaces_vxlan"],
"vpp_interfaces_xconnect": ["vpp_interfaces_xconnect"],
"vpp_acl": ["vpp_acl"],
"vpp_ipfix": ["vpp_ipfix"],
"vpp_nat": ["vpp_nat"],
"vpp_nat_cgnat": ["vpp_nat_cgnat"],
"vpp_kernel_interface": ["vpp_kernel-interfaces"],
Expand Down
1 change: 1 addition & 0 deletions data/op-mode-standardized.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@
"system.py",
"uptime.py",
"version.py",
"vpp.py",
"vrf.py"
]
2 changes: 2 additions & 0 deletions data/templates/vpp/startup.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ plugins {
plugin linux_cp_plugin.so { enable }
plugin linux_nl_plugin.so { enable }
plugin pppoe_plugin.so { enable }
# Flow
plugin flowprobe_plugin.so { enable }
plugin sflow_plugin.so { enable }
# NAT uncomment if needed
# plugin cnat_plugin.so { enable }
Expand Down
176 changes: 176 additions & 0 deletions interface-definitions/vpp.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,182 @@
</tagNode>
</children>
</node>
<node name="ipfix" owner="${vyos_conf_scripts_dir}/vpp_ipfix.py">
<properties>
<help>IP Flow Information Export (IPFIX) configuration</help>
<priority>322</priority>
</properties>
<children>
<tagNode name="collector">
<properties>
<help>Collector IP address</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 server to export IPFIX</description>
</valueHelp>
<valueHelp>
<format>ipv6</format>
<description>IPv6 server to export IPFIX</description>
</valueHelp>
<constraint>
<validator name="ip-address"/>
</constraint>
</properties>
<children>
#include <include/port-number.xml.i>
<leafNode name="port">
<defaultValue>4739</defaultValue>
</leafNode>
<leafNode name="path-mtu">
<properties>
<help>Path MTU</help>
<valueHelp>
<format>u32:68-1450</format>
<description>Bytes</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 68-1450"/>
</constraint>
</properties>
<defaultValue>512</defaultValue>
</leafNode>
#include <include/source-address-ipv4-ipv6.xml.i>
<leafNode name="template-interval">
<properties>
<help>Interval in seconds</help>
<valueHelp>
<format>u32:1-300</format>
<description>Seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-300"/>
</constraint>
</properties>
<defaultValue>20</defaultValue>
</leafNode>
<leafNode name="udp-checksum">
<properties>
<help>Allow UDP checksum</help>
<valueless/>
</properties>
</leafNode>
</children>
</tagNode>
<tagNode name="interface">
<properties>
<help>Interface</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces</script>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Interface name</description>
</valueHelp>
</properties>
<children>
<leafNode name="direction">
<properties>
<help>Flow direction</help>
<completionHelp>
<list>rx tx both</list>
</completionHelp>
<valueHelp>
<format>rx</format>
<description>Rx direction</description>
</valueHelp>
<valueHelp>
<format>tx</format>
<description>Tx direction</description>
</valueHelp>
<valueHelp>
<format>both</format>
<description>Rx and Tx direction</description>
</valueHelp>
<constraint>
<regex>(rx|tx|both)</regex>
</constraint>
</properties>
<defaultValue>both</defaultValue>
</leafNode>
<leafNode name="flow-variant">
<properties>
<help>Flow variant</help>
<completionHelp>
<list>l2 ipv4 ipv6</list>
</completionHelp>
<valueHelp>
<format>l2</format>
<description>L2</description>
</valueHelp>
<valueHelp>
<format>_ipv4</format>
<description>IPv4</description>
</valueHelp>
<valueHelp>
<format>_ipv6</format>
<description>IPv6</description>
</valueHelp>
<constraint>
<regex>(l2|ipv4|ipv6)</regex>
</constraint>
</properties>
<defaultValue>ipv4</defaultValue>
</leafNode>
</children>
</tagNode>
<leafNode name="active-timeout">
<properties>
<help>Flow activity timeout</help>
<valueHelp>
<format>u32:0-2147483647</format>
<description>Active flow export timeout (seconds)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-2147483647"/>
</constraint>
</properties>
<defaultValue>15</defaultValue>
</leafNode>
<leafNode name="inactive-timeout">
<properties>
<help>Flow inactivity timeout</help>
<valueHelp>
<format>u32:0-2147483647</format>
<description>Inactive flow export timeout (seconds)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-2147483647"/>
</constraint>
</properties>
<defaultValue>120</defaultValue>
</leafNode>
<leafNode name="flowprobe-record">
<properties>
<help>Flow record layers</help>
<completionHelp>
<list>l2 l3 l4</list>
</completionHelp>
<valueHelp>
<format>l2</format>
<description>Include level 2 information</description>
</valueHelp>
<valueHelp>
<format>l3</format>
<description>Include level 3 information</description>
</valueHelp>
<valueHelp>
<format>l4</format>
<description>Include level 4 information</description>
</valueHelp>
<constraint>
<regex>(l2|l3|l4)</regex>
</constraint>
<multi/>
</properties>
<defaultValue>l3</defaultValue>
</leafNode>
</children>
</node>
<node name="settings">
<properties>
<help>VPP settings</help>
Expand Down
36 changes: 36 additions & 0 deletions op-mode-definitions/vpp_ipfix.xml.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="show">
<children>
<node name="vpp">
<children>
<node name="ipfix">
<properties>
<help>Show VPP IPFIX information</help>
</properties>
<children>
<node name="collectors">
<properties>
<help>Show IPFIX collectors</help>
</properties>
<command>sudo ${vyos_op_scripts_dir}/vpp.py show_ipfix_collectors</command>
</node>
<node name="interfaces">
<properties>
<help>Show IPFIX interfaces</help>
</properties>
<command>sudo ${vyos_op_scripts_dir}/vpp.py show_ipfix_interfaces</command>
</node>
<node name="table">
<properties>
<help>Show IPFIX table</help>
</properties>
<command>sudo ${vyos_op_scripts_dir}/vpp.py show_ipfix_table</command>
</node>
</children>
</node>
</children>
</node>
</children>
</node>
</interfaceDefinition>
3 changes: 3 additions & 0 deletions python/vyos/vpp/ipfix/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .ipfix import IPFIX

__all__ = ['IPFIX']
Loading
Loading