Usage¶
The linux-fp-sync
service:
configures the exception path,
starts the fast path statistics feature,
starts the cache manager.
Starting Linux - Fast Path Synchronization¶
To start Linux - Fast Path Synchronization:
# systemctl start linux-fp-sync.service
Stopping Linux - Fast Path Synchronization¶
To stop Linux - Fast Path Synchronization:
# systemctl stop linux-fp-sync.service
Restarting Linux - Fast Path Synchronization¶
To restart Linux - Fast Path Synchronization:
# systemctl restart linux-fp-sync.service
Displaying the Linux - Fast Path Synchronization status¶
To display the current status of running Linux - Fast Path Synchronization threads:
# systemctl status linux-fp-sync.service
Starting the cache manager¶
The cache manager daemon:
listens to network changes in Linux, and,
forwards network changes to the fast path manager daemon via the FPC API.
To start or restart the cmgrd with Virtual Accelerator, the synchronization service
must be used and script cmgr.sh
must NOT be manually called.
Providing options¶
The cmgr.sh
script reads the /etc/cmgr.env
default configuration
file before actually starting the cache manager.
You can edit this file to customize the cache manager configuration.
If a variable specified in the configuration file already exists in the environment, the latter will be used.
Note
To have configuration file variables supersede global environment variables, specify them in the configuration file according to the following syntax:
HA=true
instead of:
: ${HA:=true}
You can set the most common options via a dedicated variable such as DEBUG
.
To set common options, use the CMGR_OPTIONS
variable and specify
them using the appropriate option delimiter (-b
for socket buffer size, -I
for the cache manager identification number, etc.).
Parameters to disable the synchronization per feature
Default is to synchronize all features supported by the fast path.
Runtime parameters can be set in CMGR_OPTIONS
to disable some of them.
- --disable-sync-vxlan¶
This will disable the synchronization of Linux VXLAN.
- --disable-sync-bridge¶
This will disable the synchronization of Linux bridge.
- --disable-sync-ebtables¶
This will disable the synchronization of Linux netfilter ebtables rules.
- --disable-sync-gre¶
This will disable the synchronization of Linux GRE.
- --disable-sync-vlan¶
This will disable the synchronization of Linux VLAN.
- --disable-sync-macvlan¶
This will disable the synchronization of Linux macvlan.
- --disable-sync-lag¶
This will disable the synchronization of Linux Bonding.
- --disable-sync-tunnel¶
This will disable the synchronization of Linux tunnels.
- --disable-sync-ipsec¶
This will disable the synchronization of Linux XFRM IPsec, including Linux VTI.
- --disable-sync-svti¶
This will disable the synchronization of Linux VTI.
- --disable-sync-nat¶
This will disable the synchronization of Linux netfilter NAT rules.
- --disable-sync-netfilter¶
This will disable the synchronization of Linux netfilter IPv4 / IPv6 rules, including NAT and conntrack.
- --disable-sync-bpf¶
This will disable the synchronization of Linux BPF.
- --disable-sync-mcast¶
This will disable the synchronization of Linux IPv4 and IPv6 multicast.
- --disable-sync-ipv6¶
This will disable the synchronization of Linux IPv6 routing.
- --disable-sync-conntrack¶
This will disable the synchronization of Linux conntrack.
Alternatively, it is possible to specify the list of features to synchronize in a single option:
- -S, --sync-mask <mask>¶
Specify the list of features to synchronize.
Feature
flag
VXLAN
0x00000001
bridge
0x00000002
VLAN
0x00000004
MACVLAN
0x00000008
LAG
0x00000010
ebtables
0x00000020
GRE/GREtap
0x00000040
tunnel
0x00000080
IPsec
0x00000100
SVTI
0x00000200
filter/audit
0x00000400
conntrack
0x00000800
NAT
0x00001000
BPF (tap)
0x00002000
tap pattern only
0x00004000
multicast routes
0x00008000
IPv6
0x00010000
Parameters to enable feature options
Some features support options, disabled by default. The following options can be enabled:
- -A, --sync-bpf-all¶
This is an option of the BPF (tap) feature.
Default is to synchronize BPF only for the applications: tcpdump, ethereal, wireshark, tshark, nmap.
The option -A forces the BPF synchronization for any application.
Alternately, you can set
: ${BPF_OPT:=true}
in the configuration file.
- -R, --sync-ipsec-replay¶
This is an option of the IPsec feature.
It enables the synchronization of IPsec replay information (SA input and output sequence numbers) from Linux to fast path. This option is used for IPsec HA.
Alternately, you can set
: ${HA_IPSEC:=true}
in the configuration file.This option may be dynamically enabled or disabled without restarting the cache manager. See Configuring HA IPsec dynamically.
Parameters for debug purpose
Here are parameters useful for debug purpose:
- -d <mask>¶
Debug mask value.
Alternately, you can set
: ${DEBUG:=<mask>}
in the configuration file.
- -F¶
Foreground.
- -b <val>¶
Custom value of the socket buffer size, default is 2M.
- -l <val>¶
Custom value of the netlink socket buffer size, default is 64M.
- -h¶
Display the full list of options.
- -o¶
Display compilation options and exit.
- -I <val>¶
Specify a number to identify a cache manager instance (only when the control plane manages more than one fast path). The value is called the instance id of the cache manager instance.
If a value is specified, syslog logs cmgrd<val>, and the console is at /tmp/.cmgrd<val>.
Dumping or changing current configuration¶
You can dump statistics such as netlink received messages and debug the queuing mechanism in a console.
Accessing the console¶
The cache manager console is reachable using the 6WIND daemonctl
tool:
# daemonctl cmgrd <daemon_command>
The following example uses daemonctl
to display available commands:
# daemonctl cmgrd help
help - Show help
? - Show help
quit - Quit the shell
show - show statistics
ipsec - ipsec commands
# daemonctl cmgrd show
pid - show pid
netlink - show netlink packets
queue - show queued msg
conf - show conf variables
modules - show registered modules
interfaces - show registered interfaces
sync-features - show synchronized feartures
Dumping statistics and configuration¶
# daemonctl cmgrd show netlink
Dump netlink socket statistics:
netlink socket name packets received
netlink-route-listen-0 16
RTM_NEWLINK 1
RTM_NEWADDR 2
RTM_NEWROUTE 9
RTM_DELROUTE 4
netlink-route-cmd-0 47
RTM_NEWLINK 8
RTM_NEWADDR 3
RTM_NEWROUTE 15
RTM_NEWNEIGH 2
RTM_[80] 19
netlink-xfrm-listen-0 0
netlink-xfrm-cmd-0 0
netlink-netfilter-conntrack-lis 3
IPCTNL_MSG_CT_NEW 3
netlink-audit-listen-0 34
AUDIT_[2] 1
AUDIT_[1300] 11
AUDIT_[1320] 11
AUDIT_NETFILTER_CFG 11
# daemonctl cmgrd show queue
Queue information
- sent: 98
- directly: 5
- in-queue: 0
- highest in-queue: 89
- has blocked: 0
- partially sent: 0
- errors: 0
- ev armed: 0
command_show_queue: address=0x1318920
current=0x7f7e5aba4000
chk_count=1
chk_total_count=1
obj_count=0
obj_total_count=191
obj_malloc_count=0
obj_ignored_free=0
next_free=0x7f7e5aba400c
# daemonctl cmgrd show modules
xfrm-migrate
# daemonctl cmgrd show interfaces
Interfaces list:
br0 vrfid 0 (ifindex: 15, ifuid: 0x42e9f282)
type: 6, subtype: 5, flags: 0x60, mtu: 1500
master_ifuid: 0x0,
in_l_bond: no
eth1 vrfid 0 (ifindex: 11, ifuid: 0x33117022)
type: 6, subtype: 0, flags: 0x60, mtu: 1500
master_ifuid: 0x82f2e942,
in_l_bond: no
fpn0 vrfid 0 (ifindex: 10, ifuid: 0x64247322)
type: 6, subtype: 0, flags: 0x63, mtu: 1500
master_ifuid: 0x0,
in_l_bond: no
eth0 vrfid 0 (ifindex: 2, ifuid: 0x61a1e72)
type: 6, subtype: 0, flags: 0x63, mtu: 1500
master_ifuid: 0x0,
in_l_bond: no
lo vrfid 0 (ifindex: 1, ifuid: 0x754c6fa8)
type: 24, subtype: 0, flags: 0x63, mtu: 65536
master_ifuid: 0x0,
in_l_bond: no
Bridge interfaces list:
eth1 vrfid 0 (ifindex: 11, ifuid: 0x33117022)
type: 249, subtype: 0, master_ifuid: 0x82f2e942
# daemonctl cmgrd show sync-features
Cache manager uses FPM configuration
Features Status (enabled/disabled)
vxlan enabled
bridge enabled
gre enabled
vlan enabled
macvlan enabled
lag enabled
ebtables enabled
tunnel enabled
ipsec enabled
svti enabled
netfilter enabled
conntrack enabled
nat enabled
bpf disabled
multicast enabled
ipv6 enabled
Configuring HA IPsec dynamically¶
The synchronization of IPsec HA related information (IPsec SA sequence numbers) may be enabled or disabled dynamically without restarting the cache manager.
To display the current IPsec HA status, use the following command:
# daemonctl cmgrd ipsec ha show
IPsec High Availability disabled
To enable the support of IPsec HA:
# daemonctl cmgrd ipsec ha enable
To disable the support of IPsec HA:
# daemonctl cmgrd ipsec ha disable