ovs-vswitchd(8) Open vSwitch ovs-vswitchd(8) (NAME) ovs-vswitchd - Open vSwitch (SYNOPSIS) ovs-vswitchd [database] (DESCRIPTION) Open vSwitch . database ovs-vswitchd ovsdb-server . database (active) (passive) OVSDB ovsdb(7) . unix:/run/openvswitch/db.sock . ovs-vswitchd database . (datapaths) Open vSwitch . ovs-vswitchd . ovs-vswitchd : o L2 MAC. o (NIC bonding) (fail-over) (TX) MAC ("SLB"). o 802.1Q VLAN. o (Port mirroring) VLAN. o NetFlow v5. o sFlow(R). o OpenFlow NOX. ovs-vswitchd . ovs-vswitchd Open vSwitch . ovs-vswitchd Open vSwitch . ovs-dpctl(8) ( ovs-appctl dpctl/command ) ovs-vswitchd . . ovs-vswitchd Open vSwitch . Open vSwitch . (OPTIONS) --mlockall ovs-vswitchd mlockall() (page fault) ( 4.4 ) (paging) . . mlockall() (superuser) . mlockall() ovs-vswitchd . DPDK (DPDK Options) ovs-vswitchd DPDK ovs-vswitchd.conf.db(5) . DPDK (DPDK HW Access Options) --hw-rawio-access ovs-vswitchd CAP_SYS_RAWIO . ovs-vswitchd iopl() ioperm() . ( mlx5 rte_flow) . (Daemon Options) POSIX . --pidfile[=pidfile] ( ovs-vswitchd.pid) PID . pidfile / /run/openvswitch . --pidfile . --overwrite-pidfile --pidfile pidfile ovs-vswitchd . --overwrite-pidfile pidfile . --pidfile . --detach ovs-vswitchd . ( ) ( --no-chdir ). . ovs-vswitchd . --monitor ovs-vswitchd . (SIGABRT SIGALRM SIGBUS SIGFPE SIGILL SIGPIPE SIGSEGV SIGXCPU SIGXFSZ) . . --detach . --no-chdir --detach ovs-vswitchd . ovs-vswitchd (unmount) . --no-chdir ovs-vswitchd . core (core dumps) . --detach . --no-self-confinement . . ( DAC MAC) . --user ovs-vswitchd "user:group" . "user" ":group" . . CAP_IPC_LOCK CAP_NET_BIND_SERVICES . ovs-vswitchd CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW . . (Public Key Infrastructure Options) -p privkey.pem --private-key=privkey.pem PEM ovs-vswitchd SSL/TLS . -c cert.pem --certificate=cert.pem PEM -p --private-key . (CA) SSL/TLS . -C cacert.pem --ca-cert=cacert.pem PEM CA ovs-vswitchd SSL/TLS . ( SSL/TLS -c --certificate PKI .) -C none --ca-cert=none SSL/TLS . . --ssl-server-name=servername TLS (SNI) . SNI . SNI . --bootstrap-ca-cert=cacert.pem cacert.pem -C --ca-cert . ovs-vswitchd CA SSL/TLS PEM . SSL/TLS CA . SSL/TLS (man-in-the- middle) CA (bootstrapping) . SSL/TLS CA SSL/TLS . SSL/TLS CA . -C --ca-cert . --peer-ca-cert=peer-cacert.pem PEM SSL/TLS . peer- cacert.pem CA ovs-vswitchd -c --certificate. ovs-vswitchd (self-signed) --certificate --peer-ca-cert . SSL/TLS CA ovs-vswitchd . SSL/TLS CA . (Logging Options) -v[spec] --verbose=[spec] . spec dbg . spec : o vlog/list ovs-appctl(8) . o syslog console file . ( --detach ovs-vswitchd .) o off emer err warn info dbg . . off . ovs-appctl(8) . spec . file --log-file ( ). OVS any . -v --verbose --verbose=dbg . -vPATTERN:destination:pattern --verbose=PATTERN:destination:pattern destination pattern . pattern ovs-appctl(8) . -vFACILITY:facility --verbose=FACILITY:facility facility RFC5424 . facility kern user mail daemon auth syslog lpr news uucp clock ftp ntp audit alert clock2 local0 local1 local2 local3 local4 local5 local6 local7 . daemon syslog local0 --syslog-target . --log-file[=file] . file . file /var/log/openvswitch/ovs-vswitchd.log . --syslog-target=host:port syslog syslog UDP port host . host IP . --syslog-method=method syslog syslog method . : o libc syslog() libc. libc syslog /dev/log . o unix:file . . rsyslogd 8.9 . rsyslogd UDP IP . o udp:ip:port UDP. rsyslogd . syslog UDP syslog UDP iptables syslog UDP . o null syslog . OVS_SYSLOG_METHOD libc . (Other Options) --unixctl=socket ovs-vswitchd ( (RUNTIME MANAGEMENT COMMANDS) ). socket / /run/openvswitch . --unixctl /run/openvswitch/ovs-vswitchd.pid.ctl pid ovs-vswitchd . none socket . -h --help . -V --version . (RUNTIME MANAGEMENT COMMANDS) ovs-appctl(8) ovs-vswitchd . . Open vSwitch . (GENERAL COMMANDS) exit --cleanup (graceful) ovs-vswitchd . --cleanup ovs-vswitchd . . ovs-vswitchd ( netdev) --cleanup internal . internal --cleanup . qos/show-types interface (QoS) Open vSwitch interface . qos/show interface interface . bfd/show [interface] (BFD) interface . interface BFD . bfd/set-forwarding [interface] status BFD interface ( ) status . status "true" "false" "normal" . cfm/show [interface] (CFM) interface . interface CFM . cfm/set-fault [interface] status CFM interface ( ) status . status "true" "false" "normal" normal . stp/tcn [bridge] bridge STP (topology change) . (TCN) MAC . . stp/show [bridge] (spanning tree) bridge . bridge STP . rstp/tcn [bridge] RSTP bridge . MAC . . rstp/show [bridge] (rapid spanning tree) bridge . bridge RSTP . (BRIDGE COMMANDS) . fdb/add bridge port vlan mac mac port vlan bridge . fdb MAC . fdb/del bridge vlan mac mac vlan bridge . fdb/flush [bridge] MAC bridge bridge . fdb/show [bridge...] MAC VLAN bridge (age ) . . "Bridge" . JSON . fdb/stats-clear [bridge] MAC bridge bridge . fdb/stats-show bridge MAC bridge . mdb/flush [bridge] (multicast snooping table) bridge bridge . mdb/show bridge VLAN bridge . bridge/reconnect [bridge] bridge OpenFlow . bridge . OpenFlow . bridge/dump-flows [--offload-stats] bridge bridge ovs-ofctl dump-flows . (in-band) fail-open . --offload-stats (offloaded) . (BOND COMMANDS) (bonded) Open vSwitch . << >> (SLB) . 48 8 ( MAC) . 8 . bond/list . bond/show [port] ( updelay downdelay ) port port . : updelay downdelay . LACP lacp/show . bond/migrate port hash member SLB . MAC . port hash MAC ( 0 255) member . : fail-over MAC . MAC . bond/set-active-member port member member port . member . : member . bond/enable-member port member bond/disable-member port member member port ( ) updelay ( downdelay) . : (carrier) member . bond/hash mac [vlan] [basis] mac vlan basis ( ) . lacp/show [port] LACP port : . : actor partner. port CFM . lacp/stats-show [port] LACP ( PDU PDU ) ( / ) port . port LACP . DPCTL (DPCTL DATAPATH DEBUGGING COMMANDS) ovs-vswitchd Open vSwitch ovs-vsctl(8). . ( ) ovs-dpctl(8) . ovs-dpctl(8) ovs-vswitchd ( netdev) . ovs-vswitchd ovs-vswitchd . dpctl/add-dp dp [netdev[,option]...] dp dp . dp . netdev ovs-vswitchd add-if . dpctl/del-dp dp dp . dp . dpctl/add-if dp netdev[,option]... netdev dp dp netdev eth0. . netdev . : type=type . system . port_no=port . . key=value - . ovs-vswitchd.conf.db(5) . dpctl/set-if dp port[,option]... port dp . key=value - . key= key . type port_no . dpctl/del-if dp netdev... netdev dp . dpctl/dump-dps . dpctl/show [-s | --statistics] [dp...] . ( 0 .) -s --statistics . (mega flow mask) . "lookups" . "hit" . "missed" . "lost" . "hit" "miss" . "flows" . "masks" . . "hit" . "total" . "hit/pkt" "hit" . . ovs-vswitchd . (DATAPATH FLOW TABLE DEBUGGING COMMANDS) Open vSwitch . ( ) OpenFlow . Open vSwitch . ovs-vswitchd ovs-vswitchd . OpenFlow ovs-ofctl(8) . dp . . dpctl/dump-flows [-m | --more] [--names | --no-names] [dp] [filter=filter] [type=type] [pmd=pmd] dp . -m --more (wildcard) -m --more . filter=filter filter . filter add-flow ovs-ofctl(8) . ( OpenFlow : .) filter . filter='tcp,tp_src=100' 'tcp(src=80/0xff00,dst=8080/0xff)' . pmd=pmd pmd . pmd=-1 (main thread) . (userspace datapath) . type=type . ovs-appctl dpctl/dump-flows . type : ovs - ovs tc - tc dpdk - dpdk offloaded - (HW) non-offloaded - partially-offloaded - all - . ovs-dpctl type ovs . dpctl/add-flow [dp] flow actions dpctl/mod-flow [--clear] [--may-create] [-s | --statistics] [dp] flow actions dp flow actions . add-flow flow dp . mod-flow --may-create . --may-create mod-flow . -s --statistics mod-flow . ( TCP) TCP . --clear mod-flow . -s --statistics . : flow actions add-flow ovs-ofctl(8) . ARP 1 2 myDP: ovs-dpctl add-flow myDP . "in_port(1),eth(),eth_type(0x0806),arp()" 2 ovs-dpctl add-flow myDP . "in_port(2),eth(),eth_type(0x0806),arp()" 1 IPv4 1 2: ovs-dpctl add-flow myDP . "in_port(1),eth(),eth_type(0x800), ipv4(src=172.31.110.4,dst=172.31.110.5)" 2 ovs-dpctl add-flow myDP . "in_port(2),eth(),eth_type(0x800), ipv4(src=172.31.110.5,dst=172.31.110.4)" 1 dpctl/add-flows [dp] file dpctl/mod-flows [dp] file dpctl/del-flows [dp] file file ( - file stdin) . ( file) add modify delete . . . dpctl/del-flow [-s | --statistics] [dp] flow flow dp . -s --statistics del-flow . dpctl/get-flow [dp] ufid:ufid [-m | --more] [--names | --no-names] ufid dp . ufid 32 . dpctl/del-flows [dp] dp . (DATAPATH FLOW CACHE COMMANDS) . dpctl/cache-get-size [dp] . dpctl/cache-set-size dp cache size cache dp size . cache-get-size . (CONNECTION TRACKING TABLE COMMANDS) (connection tracking) . dp . . ( ): system ( Open vSwitch ) ( iptables nftables ). . dpctl/ipf-set-enabled [dp] v4|v6 dpctl/ipf-set-disabled [dp] v4|v6 IP (fragmentation) . v4 v6 . IPv4 IPv6 . . dpctl/ipf-set-min-frag [dp] v4|v6 minfrag ( L3 ) minfrag . v4 v6 . (DOS) . IPv4 1200 400 . IPv6 1280 400 . . . dpctl/ipf-set-max-nfrags [dp] maxfrags maxfrags . 1000 5000 . 15 (timeout) . (memory pool) . . dpctl/ipf-get-status [dp] [-m | --more] . -m --more IP . . dpctl/dump-conntrack [-m | --more] [-s | --statistics] [dp] [zone=zone] dp . zone=zone zone . --more . --statistics . dpctl/dump-conntrack-exp [dp] [zone=zone] (expectation) dp . zone=zone zone . . dpctl/flush-conntrack [dp] [zone=zone] [ct-origin-tuple [ct-reply- tuple]] dp zone ct-origin-tuple . . zone=zone zone . ct-[orig|reply]-tuple zone . 0 . NAT . . ct-reply- tuple ct-origin-tuple . : ICMP ICMP ct-[orig|reply]-tuple IP . IPv4 ICMP: "ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=1,icmp_type=8,icmp_code=0,icmp_id=10" IPv6 TCP: "ct_ipv6_src=fc00::1,ct_ipv6_dst=fc00::2,ct_nw_proto=6,ct_tp_src=1,ct_tp_dst=2" dpctl/ct-stats-show [dp] [zone=zone] [-m | --more] dp . zone=zone . --more . dpctl/ct-bkts [dp] [gt=threshold] conntrack dp . gt=threshold threshold . dpctl/ct-set-maxconns [dp] maxconns dp maxconns . . . . dpctl/ct-get-maxconns [dp] dp . . dpctl/ct-get-nconns [dp] dp . . dpctl/ct-enable-tcp-seq-chk [dp] dpctl/ct-disable-tcp-seq-chk [dp] TCP . TCP. 'be_liberal' Netfilter . . . . dpctl/ct-get-tcp-seq-chk [dp] TCP dp . . dpctl/ct-set-sweep-interval [dp] ms (sweep interval) . . dpctl/ct-get-sweep-interval [dp] . . dpctl/ct-set-limits [dp] [default=default_limit] [zone=zone,limit=limit]... . zone limit . . default=default_limit . . 0 . dpctl/ct-del-limits [dp] zone=zone[,zone]... zone . . dpctl/ct-get-limits [dp] [zone=zone[,zone]...] . zone () . . . DPDK (DPDK COMMANDS) DPDK . dpdk/lcore-list (lcores) DPDK (cpu affinity) . RTE_MAX_LCORE OVS PMD . dpdk/log-list DPDK . dpdk/log-set [spec] DPDK . spec DPDK debug . spec : (emergency alert critical error warning notice info debug) pattern DPDK ( dpdk/log-list ovs-appctl(8) ) . dpdk/get-malloc-stats (heap) malloc DPDK . dpdk/get-memzone-stats (memzones) DPDK . DPIF-NETDEV (DPIF-NETDEV COMMANDS) ( ) "dpif-netdev" . ( dpctl/ ) dp . pmd . "-pmd Core" pmd . dpif-netdev/pmd-stats-clear [dp] pmd dpif-netdev/pmd-perf-show . . dpif-netdev/pmd-perf-show [-nh] [-it iter_len] [-ms ms_len] [-pmd core] [dp] pmd . "main" pmd . other-config:pmd-perf- metrics . . 1 . : -- (used cycles) -- (forwarded packets) -- (rx batches) -- (packets/rx batch) -- vhostuser -- (upcalls) -- upcall : 1. () : -- () -- () -- -- -- vhostuser () -- (upcalls) -- () . 2. 1024 . 3. / 1024 : -- -- -- ( - Kpps) -- -- vhost -- (upcalls) -- upcall : -nh () -it iter_len iter_len -ms ms_len ms_len PMD : Time: 15:24:55.270 Measurement duration: 1.008 s pmd thread numa_id 0 core_id 1: Iterations: 572817 (1.76 us/it) - Used TSC cycles: 2419034712 ( 99.9 % of total cycles) - idle iterations: 486808 ( 15.9 % of used cycles) - busy iterations: 86009 ( 84.1 % of used cycles) Rx packets: 2399607 (2381 Kpps, 848 cycles/pkt) Datapath passes: 3599415 (1.50 passes/pkt) - PHWOL hits: 0 ( 0.0 %) - Simple Match hits: 0 ( 0.0 %) - EMC hits: 336472 ( 9.3 %) - SMC hits: 0 ( 0.0 %) - Megaflow hits: 3262943 ( 90.7 %, 1.00 subtbl lookups/hit) - Upcalls: 0 ( 0.0 %, 0.0 us/upcall) - Lost upcalls: 0 ( 0.0 %) Tx packets: 2399607 (2381 Kpps) Tx batches: 171400 (14.00 pkts/batch) "Rx packets" . "PHWOL hits" "Simple Match hits" "EMC hits" "SMC hits" "Megaflow hits" "Upcalls" "Datapath passes" . (recirculated) . "MFEX Opt hits" (miniflow extract) . TSC ( ) . . "main" . "idle iterations" PMD . "busy iterations" PMD . TSC (polling) . dpif-netdev/pmd-stats-clear . dpif-netdev/pmd-perf-log-set on|off [-b before] [-a after] [-e|-ne] [-us usec] [-q qlen] "netdev" PMD : -- usec ( 250). PMD (Rx) . -- vhost qlen ( 128). virtio OVS . ovs-vswitchd.log OVS . (on) (off) . . : -b before ( 5). -a after ( 5). -e . -ne (). -q qlen vhost. Qemu 1024 512 ( 128). -us usec ( 250 ). : PMD . OVS . 100 OVS (-b 5 -a 5 -ne) . dpif-netdev/pmd-rxq-show [-pmd core] [dp] pmd dp (poll) . dpif-netdev/pmd-rxq-rebalance [dp] (rxqs) pmd dp . dpif-netdev/bond-show [dp] "other_config:lb- output-action" "true" ( balance-tcp). dp () . DPIF-NETLINK (DPIF-NETLINK COMMANDS) "dpif-netlink" . dpif-netlink/dispatch-mode ("dispatch-mode") . NETDEV-DPDK (NETDEV-DPDK COMMANDS) DPDK (type=dpdk*). netdev-dpdk/set-admin-state [interface] up | down DPDK up down . interface DPDK . netdev-dpdk/detach pci-address pci-address DPDK . . . netdev-dpdk/get-mempool-info [interface] DPDK . . DPDK CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG . (DATAPATH DEBUGGING COMMANDS) . ovs-dpctl(8) . dpif/show dpctl/show OpenFlow . . dpif/dump-dps . dpif/show . OpenFlow . ( OpenFlow 65534 .) dpif/dump-flows [-m] dp dp . -m (wildcard) -m . Open vSwitch . OpenFlow . OpenFlow ovs-ofctl dump-flows . dpif/del-flows dp dp ( ) . Open vSwitch . dpif/dump-flows OpenFlow . OFPROTO (OFPROTO COMMANDS) OpenFlow ( ofproto) . ofproto/list ofproto . ofproto/trace . ofproto/trace [options] [dpname] odp_flow [packet] ofproto/trace [options] bridge br_flow [packet] ofproto/trace-packet-out [options] [dpname] odp_flow [packet] actions ofproto/trace-packet-out [options] bridge br_flow [packet] actions switch . : o ofproto/trace OpenFlow OpenFlow . o ofproto/trace-packet-out OpenFlow actions ``packet-out'' OpenFlow . ( ) ( ) <<>> flow . : dpname odp_flow odp_flow dump-flows ovs-dpctl(8) . ( ) dpname ( ovs-netdev ovs- system) dpname . bridge br_flow br_flow add-flow ovs-ofctl(8) . ( OpenFlow : wildcard .) bridge br_flow . : --generate ( ). --l7 payload --l7-len length --generate . --consistent ofproto-trace-packet-out . (actions) . ( VLAN VLAN .) Open vSwitch OpenFlow 1.0 OpenFlow . OpenFlow . actions OpenFlow 1.1 ( push_vlan) --consistent . --ct-next flags conntrack ofproto/trace ct_state . ct_state conntrack . flags : o trk: . o new: . o est: . o rel: . o rpl: (reply flow). o inv: . o dnat: IP . o snat: IP . --ct-next --ct-next ct trk,new . : (Side effects). . normal MAC learn OpenFlow . trace . . ( trace .) (Incomplete information). Open vSwitch . trace . trace : --generate Open vSwitch . --generate . L7 64 . --l7-len --l7 . packet packet . 14 28 . ovs-pcap(1) ovs-tcpundump(1) . packet odp_flow br_flow (metadata) . : skb_priority (QoS) . pkt_mark . ct_state . ct_zone . ct_mark . ct_label . tun_id . in_port . in_port OpenFlow . . : ICMP (unicast) 1 00:00:5E:00:53:01 ofproto/trace br in_port=1,icmp,icmp_type=8,dl_dst=00:00:5E:00:53:01 ICMP 1 00:00:5E:00:53:01 ofproto/trace br in_port=1,icmp,icmp_type=0,dl_dst=00:00:5E:00:53:01 ARP 1 ofproto/trace br in_port=1,arp,arp_op=1 ARP 1 ofproto/trace br in_port=1,arp,arp_op=2 VLOG (VLOG COMMANDS) ovs-vswitchd . vlog/set [spec] . spec dbg . spec : o vlog/list ovs-appctl(8) . o syslog console file . o off emer err warn info dbg . . off . ovs-appctl(8) . spec . file ovs-vswitchd --log-file . OVS any . vlog/set PATTERN:destination:pattern destination pattern . pattern ovs-appctl(8) . vlog/list . vlog/list-pattern . vlog/close ovs-vswitchd . ( vlog/reopen .) vlog/reopen ovs-vswitchd . ( .) ovs-vswitchd --log-file . vlog/disable-rate-limit [module]... vlog/enable-rate-limit [module]... ovs-vswitchd . . . vlog/disable-rate-limit . vlog/list . any . vlog/enable-rate-limit vlog/disable-rate-limit . (MEMORY COMMANDS) . memory/show ovs-vswitchd . ovs-vswitchd . (COVERAGE COMMANDS) << >> (coverage counters) ovs-vswitchd . ovs-vswitchd INFO . . coverage/show . coverage/read-counter counter counter . OPENVSWITCH (OPENVSWITCH TUNNELING COMMANDS) OVS . ovs/route/add ip/plen output_bridge [gw] [pkt_mark=mark] [src=src_ip] [table=id] ip/plen vswitchd . output_bridge OVS . OVS . . . ovs/route/show [table=all|id] OVS . . (local main default) table . . ovs/route/del ip/plen [pkt_mark=mark] [table=id] ip/plen OVS . table . ovs/route/lookup ip_addr [pkt_mark=mark] [src=src_ip] IP OVS . : pkt_mark src. ovs/route/rule/show [-6] OVS . . IPv4 . IPv6 -6 . ovs/route/rule/add [-6] [not] from=all|ip/plen [prio=num] table=local|main|default|id vswitchd . IP . . . . ovs/route/rule/del [-6] [not] from=all|ip/plen [prio=num] table=local|main|default|id vswitchd . . tnl/neigh/show tnl/arp/show OVS ARP . ARP . tnl/neigh/set bridge ip mac tnl/arp/set bridge ip mac ARP bridge ip mac . tnl/neigh/flush tnl/arp/flush ARP. tnl/neigh/aging [seconds] tnl/arp/aging [seconds] (aging) . seconds 1 3600 . seconds . seconds . . tnl/egress_port_range [num1] [num2] UDP UDP VxLAN. . OPENFLOW (OPENFLOW IMPLEMENTATION) OpenFlow OpenFlow . (Packet buffering) OpenFlow 1.2 : . Open vSwitch . (Bundle lifetime) OpenFlow 1.4 : 1 OFPT_BUNDLE_CONTROL OFPT_BUNDLE_ADD_MESSAGE bundle_id ofp_error_msg OFPET_BUNDLE_FAILED OFPBFC_TIMEOUT . echo 1 ofp_error_msg OFPET_BUNDLE_FAILED OFPBFC_TIMEOUT . Open vSwitch 10 . ( other-config:bundle-idle-timeout Open_vSwitch . ovs-vswitchd.conf.db(5) .) (LIMITS) . . o ovs-vswitchd ovs-ctl(8) 65535 . . . . o 8192 MAC . ( other-config:mac-table-size Bridge . ovs-vswitchd.conf.db(5) .) o . 1,048,576 32 262,144 64 . (ovs-vswitchd .) o OpenFlow . (wildcard) . OpenFlow (constant-time) . o 255 802.1D . o 32 (mirror) . o 15 . (patch ports) . OpenFlow 15 . (SEE ALSO) ovs-appctl(8) ovsdb-server(1). Open vSwitch 4.0.0 ovs-vswitchd(8)