├── .gitignore ├── .mailmap ├── .travis.yml ├── .travis ├── linux-build.sh ├── linux-prepare.sh ├── osx-build.sh └── osx-prepare.sh ├── AUTHORS.rst ├── CONTRIBUTING.rst ├── COPYING ├── Documentation ├── _static │ ├── logo.png │ └── overview.png ├── automake.mk ├── conf.py ├── contents.rst ├── faq │ ├── configuration.rst │ ├── contributing.rst │ ├── design.rst │ ├── general.rst │ ├── index.rst │ ├── issues.rst │ ├── openflow.rst │ ├── qos.rst │ ├── releases.rst │ ├── terminology.rst │ ├── vlan.rst │ └── vxlan.rst ├── group-selection-method-property.txt ├── howto │ ├── docker.rst │ ├── dpdk.rst │ ├── firewalld.rst │ ├── index.rst │ ├── kvm.rst │ ├── libvirt.rst │ ├── lisp.rst │ ├── openstack-containers.rst │ ├── qos.png │ ├── qos.rst │ ├── selinux.rst │ ├── sflow.png │ ├── sflow.rst │ ├── ssl.rst │ ├── tunneling.png │ ├── tunneling.rst │ ├── userspace-tunneling.rst │ ├── vlan.png │ ├── vlan.rst │ └── vtep.rst ├── index.rst ├── internals │ ├── authors.rst │ ├── bugs.rst │ ├── charter.rst │ ├── committer-emeritus-status.rst │ ├── committer-grant-revocation.rst │ ├── committer-responsibilities.rst │ ├── contributing │ │ ├── backporting-patches.rst │ │ ├── coding-style-windows.rst │ │ ├── coding-style.rst │ │ ├── documentation-style.rst │ │ ├── index.rst │ │ ├── libopenvswitch-abi.rst │ │ └── submitting-patches.rst │ ├── documentation.rst │ ├── index.rst │ ├── mailing-lists.rst │ ├── maintainers.rst │ ├── patchwork.rst │ ├── release-process.rst │ └── security.rst ├── intro │ ├── index.rst │ ├── install │ │ ├── bash-completion.rst │ │ ├── bpf.rst │ │ ├── debian.rst │ │ ├── distributions.rst │ │ ├── documentation.rst │ │ ├── dpdk.rst │ │ ├── fedora.rst │ │ ├── general.rst │ │ ├── index.rst │ │ ├── netbsd.rst │ │ ├── ovn-upgrades.rst │ │ ├── rhel.rst │ │ ├── userspace.rst │ │ ├── windows.rst │ │ └── xenserver.rst │ ├── what-is-ovs.rst │ └── why-ovs.rst ├── ref │ ├── index.rst │ ├── ovs-test.8.rst │ ├── ovs-vlan-test.8.rst │ ├── ovsdb-server.7.rst │ ├── ovsdb.5.rst │ └── ovsdb.7.rst ├── requirements.txt ├── topics │ ├── bonding.rst │ ├── datapath.rst │ ├── design.rst │ ├── dpdk │ │ ├── index.rst │ │ ├── ring.rst │ │ └── vhost-user.rst │ ├── high-availability.rst │ ├── idl-compound-indexes.rst │ ├── index.rst │ ├── integration.rst │ ├── language-bindings.rst │ ├── openflow.rst │ ├── ovn-news-2.8.rst │ ├── ovsdb-replication.rst │ ├── porting.rst │ ├── role-based-access-control.rst │ ├── testing.rst │ ├── tracing.rst │ └── windows.rst └── tutorials │ ├── faucet.rst │ ├── index.rst │ ├── ovn-openstack.rst │ ├── ovn-sandbox.rst │ └── ovs-advanced.rst ├── MAINTAINERS.rst ├── Makefile.am ├── NEWS ├── NOTICE ├── README.rst ├── Vagrantfile ├── Vagrantfile-FreeBSD ├── Vagrantfile-eBPF ├── acinclude.m4 ├── appveyor.yml ├── boot.sh ├── bpf ├── .gitignore ├── action.h ├── api.h ├── automake.mk ├── datapath.c ├── datapath.h ├── generated_headers.h ├── helpers.h ├── lookup.h ├── maps.h ├── odp-bpf.h ├── openvswitch.h ├── ovs-proto.p4 ├── parser.h └── xdp.h ├── build-aux ├── .gitignore ├── automake.mk ├── calculate-schema-cksum ├── cccl ├── check-structs ├── cksum-schema-check ├── dist-docs ├── dpdkstrip.py ├── extract-odp-netlink-h ├── extract-odp-netlink-windows-dp-h ├── extract-ofp-actions ├── extract-ofp-errors ├── extract-ofp-fields ├── extract-ofp-msgs ├── sodepends.py ├── soexpand.py ├── text2c ├── thread-safety-blacklist └── xml2nroff ├── configure.ac ├── datapath-windows ├── .gitignore ├── Package │ ├── package.VcxProj │ └── package.VcxProj.user ├── automake.mk ├── include │ ├── OvsDpInterfaceCtExt.h │ ├── OvsDpInterfaceExt.h │ └── automake.mk ├── misc │ ├── OVS.psm1 │ ├── install.cmd │ └── uninstall.cmd ├── ovsext.sln └── ovsext │ ├── Actions.c │ ├── Actions.h │ ├── Atomic.h │ ├── BufferMgmt.c │ ├── BufferMgmt.h │ ├── Conntrack-ftp.c │ ├── Conntrack-icmp.c │ ├── Conntrack-nat.c │ ├── Conntrack-nat.h │ ├── Conntrack-other.c │ ├── Conntrack-related.c │ ├── Conntrack-tcp.c │ ├── Conntrack.c │ ├── Conntrack.h │ ├── Datapath.c │ ├── Datapath.h │ ├── Debug.c │ ├── Debug.h │ ├── DpInternal.h │ ├── Driver.c │ ├── Ethernet.h │ ├── Event.c │ ├── Event.h │ ├── Flow.c │ ├── Flow.h │ ├── Geneve.c │ ├── Geneve.h │ ├── Gre.c │ ├── Gre.h │ ├── IpFragment.c │ ├── IpFragment.h │ ├── IpHelper.c │ ├── IpHelper.h │ ├── Jhash.c │ ├── Jhash.h │ ├── Mpls.h │ ├── NetProto.h │ ├── Netlink │ ├── Netlink.c │ ├── Netlink.h │ ├── NetlinkBuf.c │ ├── NetlinkBuf.h │ ├── NetlinkError.h │ └── NetlinkProto.h │ ├── Offload.c │ ├── Offload.h │ ├── Oid.c │ ├── Oid.h │ ├── PacketIO.c │ ├── PacketIO.h │ ├── PacketParser.c │ ├── PacketParser.h │ ├── Recirc.c │ ├── Recirc.h │ ├── Stt.c │ ├── Stt.h │ ├── Switch.c │ ├── Switch.h │ ├── Tunnel.c │ ├── Tunnel.h │ ├── TunnelFilter.c │ ├── TunnelIntf.h │ ├── Types.h │ ├── User.c │ ├── User.h │ ├── Util.c │ ├── Util.h │ ├── Vport.c │ ├── Vport.h │ ├── Vxlan.c │ ├── Vxlan.h │ ├── ovsext.inf │ ├── ovsext.rc │ ├── ovsext.vcxproj │ ├── ovsext.vcxproj.user │ ├── precomp.h │ ├── precompsrc.c │ └── resource.h ├── datapath ├── .gitignore ├── Makefile.am ├── Modules.mk ├── actions.c ├── compat.h ├── conntrack.c ├── conntrack.h ├── datapath.c ├── datapath.h ├── dp_notify.c ├── flow.c ├── flow.h ├── flow_netlink.c ├── flow_netlink.h ├── flow_table.c ├── flow_table.h ├── linux │ ├── .gitignore │ ├── Kbuild.in │ ├── Makefile.in │ ├── Makefile.main.in │ ├── Modules.mk │ └── compat │ │ ├── build-aux │ │ └── export-check-whitelist │ │ ├── dev-openvswitch.c │ │ ├── dst_cache.c │ │ ├── exthdrs_core.c │ │ ├── genetlink-openvswitch.c │ │ ├── geneve.c │ │ ├── gre.c │ │ ├── gso.c │ │ ├── gso.h │ │ ├── include │ │ ├── linux │ │ │ ├── bug.h │ │ │ ├── cache.h │ │ │ ├── compiler-gcc.h │ │ │ ├── compiler.h │ │ │ ├── cpumask.h │ │ │ ├── err.h │ │ │ ├── etherdevice.h │ │ │ ├── genetlink.h │ │ │ ├── if.h │ │ │ ├── if_ether.h │ │ │ ├── if_link.h │ │ │ ├── if_vlan.h │ │ │ ├── in.h │ │ │ ├── jiffies.h │ │ │ ├── kconfig.h │ │ │ ├── kernel.h │ │ │ ├── list.h │ │ │ ├── mpls.h │ │ │ ├── net.h │ │ │ ├── netdev_features.h │ │ │ ├── netdevice.h │ │ │ ├── netfilter_ipv6.h │ │ │ ├── netlink.h │ │ │ ├── openvswitch.h │ │ │ ├── percpu.h │ │ │ ├── random.h │ │ │ ├── rculist.h │ │ │ ├── rcupdate.h │ │ │ ├── reciprocal_div.h │ │ │ ├── rtnetlink.h │ │ │ ├── skbuff.h │ │ │ ├── stddef.h │ │ │ ├── timekeeping.h │ │ │ ├── types.h │ │ │ ├── u64_stats_sync.h │ │ │ ├── udp.h │ │ │ └── workqueue.h │ │ └── net │ │ │ ├── checksum.h │ │ │ ├── dst.h │ │ │ ├── dst_cache.h │ │ │ ├── dst_metadata.h │ │ │ ├── genetlink.h │ │ │ ├── geneve.h │ │ │ ├── gre.h │ │ │ ├── inet_ecn.h │ │ │ ├── inet_frag.h │ │ │ ├── inetpeer.h │ │ │ ├── ip.h │ │ │ ├── ip6_fib.h │ │ │ ├── ip6_route.h │ │ │ ├── ip6_tunnel.h │ │ │ ├── ip_tunnels.h │ │ │ ├── ipv6.h │ │ │ ├── lisp.h │ │ │ ├── mpls.h │ │ │ ├── net_namespace.h │ │ │ ├── netfilter │ │ │ ├── ipv6 │ │ │ │ └── nf_defrag_ipv6.h │ │ │ ├── nf_conntrack.h │ │ │ ├── nf_conntrack_core.h │ │ │ ├── nf_conntrack_expect.h │ │ │ ├── nf_conntrack_helper.h │ │ │ ├── nf_conntrack_labels.h │ │ │ ├── nf_conntrack_seqadj.h │ │ │ ├── nf_conntrack_zones.h │ │ │ └── nf_nat.h │ │ │ ├── netlink.h │ │ │ ├── nsh.h │ │ │ ├── protocol.h │ │ │ ├── route.h │ │ │ ├── rtnetlink.h │ │ │ ├── sctp │ │ │ └── checksum.h │ │ │ ├── sock.h │ │ │ ├── stt.h │ │ │ ├── tun_proto.h │ │ │ ├── udp.h │ │ │ ├── udp_tunnel.h │ │ │ ├── vrf.h │ │ │ └── vxlan.h │ │ ├── inet_fragment.c │ │ ├── ip6_output.c │ │ ├── ip_fragment.c │ │ ├── ip_gre.c │ │ ├── ip_output.c │ │ ├── ip_tunnel.c │ │ ├── ip_tunnels_core.c │ │ ├── lisp.c │ │ ├── netdevice.c │ │ ├── nf_conntrack_core.c │ │ ├── nf_conntrack_reasm.c │ │ ├── reciprocal_div.c │ │ ├── skbuff-openvswitch.c │ │ ├── socket.c │ │ ├── stt.c │ │ ├── udp.c │ │ ├── udp_tunnel.c │ │ ├── utils.c │ │ └── vxlan.c ├── nsh.c ├── vport-geneve.c ├── vport-gre.c ├── vport-internal_dev.c ├── vport-internal_dev.h ├── vport-lisp.c ├── vport-netdev.c ├── vport-netdev.h ├── vport-stt.c ├── vport-vxlan.c ├── vport.c └── vport.h ├── debian ├── .gitignore ├── automake.mk ├── changelog ├── compat ├── control ├── control.modules.in ├── copyright.in ├── dirs ├── dkms.conf.in ├── ifupdown.sh ├── libopenvswitch-dev.install ├── libopenvswitch.install ├── openvswitch-common.dirs ├── openvswitch-common.docs ├── openvswitch-common.install ├── openvswitch-common.manpages ├── openvswitch-datapath-dkms.postinst ├── openvswitch-datapath-dkms.prerm ├── openvswitch-datapath-module-_KVERS_.postinst.modules.in ├── openvswitch-datapath-source.README.Debian ├── openvswitch-datapath-source.copyright ├── openvswitch-datapath-source.dirs ├── openvswitch-datapath-source.install ├── openvswitch-pki.dirs ├── openvswitch-pki.postinst ├── openvswitch-pki.postrm ├── openvswitch-switch.README.Debian ├── openvswitch-switch.dirs ├── openvswitch-switch.init ├── openvswitch-switch.install ├── openvswitch-switch.links ├── openvswitch-switch.logrotate ├── openvswitch-switch.manpages ├── openvswitch-switch.postinst ├── openvswitch-switch.postrm ├── openvswitch-switch.template ├── openvswitch-test.dirs ├── openvswitch-test.install ├── openvswitch-test.manpages ├── openvswitch-testcontroller.README.Debian ├── openvswitch-testcontroller.default ├── openvswitch-testcontroller.dirs ├── openvswitch-testcontroller.init ├── openvswitch-testcontroller.install ├── openvswitch-testcontroller.manpages ├── openvswitch-testcontroller.postinst ├── openvswitch-testcontroller.postrm ├── openvswitch-vtep.default ├── openvswitch-vtep.dirs ├── openvswitch-vtep.init ├── openvswitch-vtep.install ├── openvswitch-vtep.manpages ├── ovn-central.dirs ├── ovn-central.init ├── ovn-central.install ├── ovn-central.manpages ├── ovn-central.postinst ├── ovn-central.postrm ├── ovn-central.template ├── ovn-common.install ├── ovn-common.manpages ├── ovn-common.postinst ├── ovn-common.postrm ├── ovn-controller-vtep.init ├── ovn-controller-vtep.install ├── ovn-controller-vtep.manpages ├── ovn-docker.install ├── ovn-host.dirs ├── ovn-host.init ├── ovn-host.install ├── ovn-host.manpages ├── ovn-host.postinst ├── ovn-host.postrm ├── ovn-host.template ├── python-openvswitch.dirs ├── python-openvswitch.install ├── rules ├── rules.modules └── source │ └── format ├── include ├── .gitignore ├── automake.mk ├── linux │ ├── automake.mk │ ├── pkt_cls.h │ └── tc_act │ │ ├── tc_pedit.h │ │ ├── tc_tunnel_key.h │ │ └── tc_vlan.h ├── openflow │ ├── .gitignore │ ├── automake.mk │ ├── intel-ext.h │ ├── netronome-ext.h │ ├── nicira-ext.h │ ├── openflow-1.0.h │ ├── openflow-1.1.h │ ├── openflow-1.2.h │ ├── openflow-1.3.h │ ├── openflow-1.4.h │ ├── openflow-1.5.h │ ├── openflow-1.6.h │ ├── openflow-common.h │ └── openflow.h ├── openvswitch │ ├── .gitignore │ ├── automake.mk │ ├── compiler.h │ ├── dynamic-string.h │ ├── flow.h │ ├── geneve.h │ ├── hmap.h │ ├── json.h │ ├── list.h │ ├── match.h │ ├── meta-flow.h │ ├── netdev.h │ ├── nsh.h │ ├── ofp-actions.h │ ├── ofp-ed-props.h │ ├── ofp-errors.h │ ├── ofp-msgs.h │ ├── ofp-parse.h │ ├── ofp-print.h │ ├── ofp-prop.h │ ├── ofp-util.h │ ├── ofpbuf.h │ ├── packets.h │ ├── poll-loop.h │ ├── rconn.h │ ├── shash.h │ ├── thread.h │ ├── token-bucket.h │ ├── tun-metadata.h │ ├── type-props.h │ ├── types.h │ ├── util.h │ ├── uuid.h │ ├── vconn.h │ ├── version.h.in │ └── vlog.h ├── ovn │ ├── actions.h │ ├── automake.mk │ ├── expr.h │ └── lex.h ├── sparse │ ├── arpa │ │ └── inet.h │ ├── assert.h │ ├── automake.mk │ ├── bits │ │ └── floatn.h │ ├── bmi2intrin.h │ ├── emmintrin.h │ ├── math.h │ ├── netinet │ │ ├── in.h │ │ └── ip6.h │ ├── netpacket │ │ └── packet.h │ ├── pthread.h │ ├── rte_atomic.h │ ├── rte_lcore.h │ ├── rte_memcpy.h │ ├── rte_vect.h │ └── sys │ │ ├── socket.h │ │ ├── sysmacros.h │ │ ├── types.h │ │ └── wait.h └── windows │ ├── arpa │ └── inet.h │ ├── automake.mk │ ├── dirent.h │ ├── getopt.h │ ├── linux │ ├── netfilter │ │ ├── nf_conntrack_common.h │ │ ├── nf_conntrack_ftp.h │ │ ├── nf_conntrack_sctp.h │ │ ├── nf_conntrack_tcp.h │ │ ├── nfnetlink.h │ │ └── nfnetlink_conntrack.h │ ├── pkt_sched.h │ └── types.h │ ├── net │ └── if.h │ ├── netdb.h │ ├── netinet │ ├── icmp6.h │ ├── in.h │ ├── in_systm.h │ ├── ip.h │ ├── ip6.h │ └── tcp.h │ ├── netpacket │ └── packet.h │ ├── poll.h │ ├── strings.h │ ├── sys │ ├── epoll.h │ ├── ioctl.h │ ├── resource.h │ ├── socket.h │ ├── time.h │ ├── uio.h │ ├── un.h │ └── wait.h │ ├── syslog.h │ ├── unistd.h │ └── windefs.h ├── lib ├── .gitignore ├── aes128.c ├── aes128.h ├── async-append-aio.c ├── async-append-null.c ├── async-append.h ├── automake.mk ├── backtrace.c ├── backtrace.h ├── bfd.c ├── bfd.h ├── bitmap.h ├── bpf.c ├── bpf.h ├── bundle.c ├── bundle.h ├── byte-order.h ├── byteq.c ├── byteq.h ├── ccmap.c ├── ccmap.h ├── cfm.c ├── cfm.h ├── classifier-private.h ├── classifier.c ├── classifier.h ├── cmap.c ├── cmap.h ├── colors.c ├── colors.h ├── colors.man ├── command-line.c ├── command-line.h ├── common-syn.man ├── common.man ├── common.xml ├── compiler.h ├── connectivity.c ├── connectivity.h ├── conntrack-icmp.c ├── conntrack-other.c ├── conntrack-private.h ├── conntrack-tcp.c ├── conntrack.c ├── conntrack.h ├── coverage-unixctl.man ├── coverage.c ├── coverage.h ├── crc32c.c ├── crc32c.h ├── csum.c ├── csum.h ├── ct-dpif.c ├── ct-dpif.h ├── daemon-private.h ├── daemon-syn.man ├── daemon-unix.c ├── daemon-windows.c ├── daemon.c ├── daemon.h ├── daemon.man ├── daemon.xml ├── db-ctl-base.c ├── db-ctl-base.h ├── db-ctl-base.man ├── db-ctl-base.xml ├── dh1024.pem ├── dh2048.pem ├── dh4096.pem ├── dhcp.h ├── dhparams.h ├── dirs.c.in ├── dirs.h ├── dp-packet.c ├── dp-packet.h ├── dpctl.c ├── dpctl.h ├── dpctl.man ├── dpdk-stub.c ├── dpdk.c ├── dpdk.h ├── dpif-bpf-odp.c ├── dpif-bpf-odp.h ├── dpif-bpf.c ├── dpif-netdev-perf.c ├── dpif-netdev-perf.h ├── dpif-netdev.c ├── dpif-netdev.h ├── dpif-netlink-rtnl.c ├── dpif-netlink-rtnl.h ├── dpif-netlink.c ├── dpif-netlink.h ├── dpif-provider.h ├── dpif.c ├── dpif.h ├── dummy.c ├── dummy.h ├── dynamic-string.c ├── entropy.c ├── entropy.h ├── fat-rwlock.c ├── fat-rwlock.h ├── fatal-signal.c ├── fatal-signal.h ├── flow.c ├── flow.h ├── getopt_long.c ├── getrusage-windows.c ├── guarded-list.c ├── guarded-list.h ├── hash.c ├── hash.h ├── heap.c ├── heap.h ├── hindex.c ├── hindex.h ├── hmap.c ├── hmapx.c ├── hmapx.h ├── id-pool.c ├── id-pool.h ├── if-notifier-bsd.c ├── if-notifier-stub.c ├── if-notifier.c ├── if-notifier.h ├── jhash.c ├── jhash.h ├── json.c ├── jsonrpc.c ├── jsonrpc.h ├── lacp.c ├── lacp.h ├── latch-unix.c ├── latch-windows.c ├── latch.h ├── learn.c ├── learn.h ├── learning-switch.c ├── learning-switch.h ├── libopenvswitch.pc.in ├── libopenvswitch.sym.in ├── libsflow.pc.in ├── libsflow.sym.in ├── lldp │ ├── aa-structs.h │ ├── lldp-const.h │ ├── lldp-tlv.h │ ├── lldp.c │ ├── lldpd-structs.c │ ├── lldpd-structs.h │ ├── lldpd.c │ └── lldpd.h ├── lockfile.c ├── lockfile.h ├── mac-learning.c ├── mac-learning.h ├── match.c ├── mcast-snooping.c ├── mcast-snooping.h ├── memory-unixctl.man ├── memory.c ├── memory.h ├── meta-flow.c ├── meta-flow.xml ├── multipath.c ├── multipath.h ├── netdev-bsd.c ├── netdev-dpdk-unixctl.man ├── netdev-dpdk.c ├── netdev-dpdk.h ├── netdev-dummy.c ├── netdev-linux.c ├── netdev-linux.h ├── netdev-native-tnl.c ├── netdev-native-tnl.h ├── netdev-provider.h ├── netdev-tc-offloads.c ├── netdev-tc-offloads.h ├── netdev-vport-private.h ├── netdev-vport.c ├── netdev-vport.h ├── netdev-windows.c ├── netdev.c ├── netdev.h ├── netflow.h ├── netlink-conntrack.c ├── netlink-conntrack.h ├── netlink-notifier.c ├── netlink-notifier.h ├── netlink-protocol.h ├── netlink-socket.c ├── netlink-socket.h ├── netlink.c ├── netlink.h ├── nx-match.c ├── nx-match.h ├── object-collection.c ├── object-collection.h ├── odp-execute.c ├── odp-execute.h ├── odp-util.c ├── odp-util.h ├── ofp-actions.c ├── ofp-ed-props.c ├── ofp-errors.c ├── ofp-msgs.c ├── ofp-parse.c ├── ofp-print.c ├── ofp-prop.c ├── ofp-util.c ├── ofp-version-opt.c ├── ofp-version-opt.h ├── ofp-version.man ├── ofpbuf.c ├── ovs-atomic-c++.h ├── ovs-atomic-c11.h ├── ovs-atomic-clang.h ├── ovs-atomic-flag-gcc4.7+.h ├── ovs-atomic-gcc4+.h ├── ovs-atomic-gcc4.7+.h ├── ovs-atomic-i586.h ├── ovs-atomic-locked.c ├── ovs-atomic-locked.h ├── ovs-atomic-msvc.h ├── ovs-atomic-pthreads.h ├── ovs-atomic-x86_64.h ├── ovs-atomic.h ├── ovs-lldp.c ├── ovs-lldp.h ├── ovs-numa.c ├── ovs-numa.h ├── ovs-rcu.c ├── ovs-rcu.h ├── ovs-router.c ├── ovs-router.h ├── ovs-thread.c ├── ovs-thread.h ├── ovs.tmac ├── ovsdb-condition.c ├── ovsdb-condition.h ├── ovsdb-data.c ├── ovsdb-data.h ├── ovsdb-error.c ├── ovsdb-error.h ├── ovsdb-idl-provider.h ├── ovsdb-idl.c ├── ovsdb-idl.h ├── ovsdb-map-op.c ├── ovsdb-map-op.h ├── ovsdb-parser.c ├── ovsdb-parser.h ├── ovsdb-server-idl.ann ├── ovsdb-session.c ├── ovsdb-session.h ├── ovsdb-set-op.c ├── ovsdb-set-op.h ├── ovsdb-types.c ├── ovsdb-types.h ├── packets.c ├── packets.h ├── pcap-file.c ├── pcap-file.h ├── perf-counter.c ├── perf-counter.h ├── perf-event.c ├── perf-event.h ├── poll-loop.c ├── process.c ├── process.h ├── pvector.c ├── pvector.h ├── random.c ├── random.h ├── rconn.c ├── rculist.h ├── reconnect.c ├── reconnect.h ├── route-table-bsd.c ├── route-table-stub.c ├── route-table.c ├── route-table.h ├── rstp-common.h ├── rstp-state-machines.c ├── rstp-state-machines.h ├── rstp.c ├── rstp.h ├── rtbsd.c ├── rtbsd.h ├── rtnetlink.c ├── rtnetlink.h ├── sat-math.h ├── seq.c ├── seq.h ├── service-syn.man ├── service.man ├── sflow.h ├── sflow_agent.c ├── sflow_api.h ├── sflow_poller.c ├── sflow_receiver.c ├── sflow_sampler.c ├── sha1.c ├── sha1.h ├── shash.c ├── signals.c ├── signals.h ├── simap.c ├── simap.h ├── skiplist.c ├── skiplist.h ├── smap.c ├── smap.h ├── socket-util-unix.c ├── socket-util.c ├── socket-util.h ├── sort.c ├── sort.h ├── sset.c ├── sset.h ├── ssl-bootstrap-syn.man ├── ssl-bootstrap.man ├── ssl-bootstrap.xml ├── ssl-connect-syn.man ├── ssl-connect.man ├── ssl-peer-ca-cert-syn.man ├── ssl-peer-ca-cert.man ├── ssl-syn.man ├── ssl.man ├── ssl.xml ├── stdio.c ├── stdio.h.in ├── stp.c ├── stp.h ├── stream-fd.c ├── stream-fd.h ├── stream-nossl.c ├── stream-provider.h ├── stream-ssl.c ├── stream-ssl.h ├── stream-tcp.c ├── stream-unix.c ├── stream-windows.c ├── stream.c ├── stream.h ├── string.c ├── string.h.in ├── strsep.c ├── svec.c ├── svec.h ├── syslog-direct.c ├── syslog-direct.h ├── syslog-libc.c ├── syslog-libc.h ├── syslog-provider.h ├── table.c ├── table.h ├── table.man ├── table.xml ├── tc.c ├── tc.h ├── timer.c ├── timer.h ├── timeval.c ├── timeval.h ├── tnl-neigh-cache.c ├── tnl-neigh-cache.h ├── tnl-ports.c ├── tnl-ports.h ├── token-bucket.c ├── tun-metadata.c ├── tun-metadata.h ├── unaligned.h ├── unicode.c ├── unicode.h ├── unixctl-syn.man ├── unixctl.c ├── unixctl.h ├── unixctl.man ├── util.c ├── util.h ├── uuid.c ├── uuid.h ├── valgrind.h ├── vconn-active.man ├── vconn-passive.man ├── vconn-provider.h ├── vconn-stream.c ├── vconn.c ├── versions.h ├── vl-mff-map.h ├── vlan-bitmap.c ├── vlan-bitmap.h ├── vlog-syn.man ├── vlog-unixctl.man ├── vlog.c ├── vlog.man ├── vlog.xml ├── vswitch-idl.ann ├── wmi.c └── wmi.h ├── m4 ├── .gitignore ├── absolute-header.m4 ├── automake.mk ├── ax_check_openssl.m4 ├── ax_cxx_compile_stdcxx.m4 ├── ax_func_posix_memalign.m4 ├── compat.m4 ├── include_next.m4 ├── openvswitch.m4 └── pkg.m4 ├── manpages.mk ├── ofproto ├── .gitignore ├── automake.mk ├── bond.c ├── bond.h ├── bundles.c ├── bundles.h ├── collectors.c ├── collectors.h ├── connmgr.c ├── connmgr.h ├── fail-open.c ├── fail-open.h ├── in-band.c ├── in-band.h ├── ipfix-enterprise-entities.def ├── ipfix-gen-entities ├── ipfix.xml ├── libofproto.pc.in ├── libofproto.sym.in ├── names.c ├── netflow.c ├── netflow.h ├── ofproto-dpif-ipfix.c ├── ofproto-dpif-ipfix.h ├── ofproto-dpif-mirror.c ├── ofproto-dpif-mirror.h ├── ofproto-dpif-monitor.c ├── ofproto-dpif-monitor.h ├── ofproto-dpif-rid.c ├── ofproto-dpif-rid.h ├── ofproto-dpif-sflow.c ├── ofproto-dpif-sflow.h ├── ofproto-dpif-trace.c ├── ofproto-dpif-trace.h ├── ofproto-dpif-unixctl.man ├── ofproto-dpif-upcall.c ├── ofproto-dpif-upcall.h ├── ofproto-dpif-xlate-cache.c ├── ofproto-dpif-xlate-cache.h ├── ofproto-dpif-xlate.c ├── ofproto-dpif-xlate.h ├── ofproto-dpif.c ├── ofproto-dpif.h ├── ofproto-provider.h ├── ofproto-tnl-unixctl.man ├── ofproto-unixctl.man ├── ofproto.c ├── ofproto.h ├── pinsched.c ├── pinsched.h ├── tunnel.c └── tunnel.h ├── ovn ├── .gitignore ├── TODO.rst ├── automake.mk ├── controller-vtep │ ├── .gitignore │ ├── automake.mk │ ├── binding.c │ ├── binding.h │ ├── gateway.c │ ├── gateway.h │ ├── ovn-controller-vtep.8.xml │ ├── ovn-controller-vtep.c │ ├── ovn-controller-vtep.h │ ├── vtep.c │ └── vtep.h ├── controller │ ├── .gitignore │ ├── automake.mk │ ├── bfd.c │ ├── bfd.h │ ├── binding.c │ ├── binding.h │ ├── chassis.c │ ├── chassis.h │ ├── encaps.c │ ├── encaps.h │ ├── gchassis.c │ ├── gchassis.h │ ├── lflow.c │ ├── lflow.h │ ├── lport.c │ ├── lport.h │ ├── ofctrl.c │ ├── ofctrl.h │ ├── ovn-controller.8.xml │ ├── ovn-controller.c │ ├── ovn-controller.h │ ├── patch.c │ ├── patch.h │ ├── physical.c │ ├── physical.h │ ├── pinctrl.c │ └── pinctrl.h ├── lib │ ├── .gitignore │ ├── acl-log.c │ ├── acl-log.h │ ├── actions.c │ ├── automake.mk │ ├── chassis-index.c │ ├── chassis-index.h │ ├── expr.c │ ├── extend-table.c │ ├── extend-table.h │ ├── lex.c │ ├── libovn.sym.in │ ├── logical-fields.c │ ├── logical-fields.h │ ├── ovn-l7.h │ ├── ovn-nb-idl.ann │ ├── ovn-sb-idl.ann │ ├── ovn-util.c │ └── ovn-util.h ├── northd │ ├── .gitignore │ ├── automake.mk │ ├── ovn-northd.8.xml │ └── ovn-northd.c ├── ovn-architecture.7.xml ├── ovn-nb.ovsschema ├── ovn-nb.xml ├── ovn-sb.ovsschema ├── ovn-sb.xml └── utilities │ ├── .gitignore │ ├── automake.mk │ ├── bugtool │ ├── automake.mk │ ├── ovn-bugtool-nbctl-show │ ├── ovn-bugtool-sbctl-lflow-list │ ├── ovn-bugtool-sbctl-show │ └── plugins │ │ └── network-status │ │ └── ovn.xml │ ├── ovn-ctl │ ├── ovn-ctl.8.xml │ ├── ovn-detrace.1.in │ ├── ovn-detrace.in │ ├── ovn-docker-overlay-driver.in │ ├── ovn-docker-underlay-driver.in │ ├── ovn-nbctl.8.xml │ ├── ovn-nbctl.c │ ├── ovn-sbctl.8.in │ ├── ovn-sbctl.c │ ├── ovn-trace.8.xml │ ├── ovn-trace.c │ └── ovndb-servers.ocf ├── ovsdb ├── .gitignore ├── TODO.rst ├── _server.ovsschema ├── _server.xml ├── automake.mk ├── column.c ├── column.h ├── condition.c ├── condition.h ├── dot2pic ├── execution.c ├── file.c ├── file.h ├── jsonrpc-server.c ├── jsonrpc-server.h ├── libovsdb.pc.in ├── libovsdb.sym.in ├── log.c ├── log.h ├── monitor.c ├── monitor.h ├── mutation.c ├── mutation.h ├── ovsdb-client.1.in ├── ovsdb-client.c ├── ovsdb-doc ├── ovsdb-dot.in ├── ovsdb-idlc.1 ├── ovsdb-idlc.in ├── ovsdb-schemas.man ├── ovsdb-server.1.in ├── ovsdb-server.c ├── ovsdb-tool.1.in ├── ovsdb-tool.c ├── ovsdb-util.c ├── ovsdb-util.h ├── ovsdb.c ├── ovsdb.h ├── query.c ├── query.h ├── raft-private.c ├── raft-private.h ├── raft-rpc.c ├── raft-rpc.h ├── raft.c ├── raft.h ├── rbac.c ├── rbac.h ├── replication.c ├── replication.h ├── row.c ├── row.h ├── server.c ├── server.h ├── storage.c ├── storage.h ├── table.c ├── table.h ├── transaction.c ├── transaction.h ├── trigger.c └── trigger.h ├── python ├── .gitignore ├── README.rst ├── automake.mk ├── build │ ├── __init__.py │ ├── nroff.py │ └── soutil.py ├── ovs │ ├── .gitignore │ ├── __init__.py │ ├── _json.c │ ├── compat │ │ ├── __init__.py │ │ └── sortedcontainers │ │ │ ├── LICENSE │ │ │ ├── __init__.py │ │ │ ├── sorteddict.py │ │ │ ├── sortedlist.py │ │ │ └── sortedset.py │ ├── daemon.py │ ├── db │ │ ├── __init__.py │ │ ├── custom_index.py │ │ ├── data.py │ │ ├── error.py │ │ ├── idl.py │ │ ├── parser.py │ │ ├── schema.py │ │ └── types.py │ ├── dirs.py │ ├── dirs.py.template │ ├── fatal_signal.py │ ├── fcntl_win.py │ ├── json.py │ ├── jsonrpc.py │ ├── ovsuuid.py │ ├── poller.py │ ├── process.py │ ├── reconnect.py │ ├── socket_util.py │ ├── stream.py │ ├── timeval.py │ ├── unixctl │ │ ├── __init__.py │ │ ├── client.py │ │ └── server.py │ ├── util.py │ ├── vlog.py │ └── winutils.py ├── ovstest │ ├── __init__.py │ ├── args.py │ ├── rpcserver.py │ ├── tcp.py │ ├── tests.py │ ├── udp.py │ ├── util.py │ └── vswitch.py └── setup.py ├── rhel ├── .gitignore ├── README.RHEL.rst ├── automake.mk ├── etc_init.d_openvswitch ├── etc_logrotate.d_openvswitch ├── etc_openvswitch_default.conf ├── etc_sysconfig_network-scripts_ifdown-ovs ├── etc_sysconfig_network-scripts_ifup-ovs ├── openvswitch-dkms.spec.in ├── openvswitch-fedora.spec.in ├── openvswitch-kmod-fedora.spec.in ├── openvswitch-kmod-rhel6.spec.in ├── openvswitch-kmod.files ├── openvswitch.spec.in ├── usr_lib_firewalld_services_ovn-central-firewall-service.xml ├── usr_lib_firewalld_services_ovn-host-firewall-service.xml ├── usr_lib_systemd_system_openvswitch.service ├── usr_lib_systemd_system_ovn-controller-vtep.service ├── usr_lib_systemd_system_ovn-controller.service ├── usr_lib_systemd_system_ovn-northd.service ├── usr_lib_systemd_system_ovs-delete-transient-ports.service ├── usr_lib_systemd_system_ovs-vswitchd.service.in ├── usr_lib_systemd_system_ovsdb-server.service ├── usr_lib_udev_rules.d_91-vfio.rules ├── usr_share_openvswitch_scripts_ovs-systemd-reload ├── usr_share_openvswitch_scripts_sysconfig.template └── usr_share_openvswitch_scripts_systemd_sysconfig.template ├── selinux ├── .gitignore ├── automake.mk └── openvswitch-custom.te.in ├── tests ├── .gitignore ├── MockXenAPI.py ├── aes128.at ├── appctl.py ├── atlocal.in ├── auto-attach.at ├── automake.mk ├── bfd.at ├── bridge.at ├── bundle.at ├── cfm.at ├── check-structs.at ├── classifier.at ├── completion.at ├── daemon-py.at ├── daemon.at ├── dpctl.at ├── dpdk │ └── ring_client.c ├── dpif-netdev.at ├── file_name.at ├── flowgen.py ├── glibc.supp ├── heap.at ├── idltest.ann ├── idltest.ovsschema ├── idltest2.ovsschema ├── interface-reconfigure.at ├── json.at ├── jsonrpc-py.at ├── jsonrpc.at ├── lacp.at ├── learn.at ├── lib.at ├── library.at ├── lockfile.at ├── mcast-snooping.at ├── mpls-xlate.at ├── multipath.at ├── netdev-type.at ├── nsh.at ├── odp.at ├── ofp-actions.at ├── ofp-errors.at ├── ofp-print.at ├── ofp-util.at ├── ofproto-dpif.at ├── ofproto-macros.at ├── ofproto.at ├── openssl.supp ├── ovn-controller-vtep.at ├── ovn-controller.at ├── ovn-nbctl.at ├── ovn-northd.at ├── ovn-sbctl.at ├── ovn.at ├── ovs-macros.at ├── ovs-ofctl.at ├── ovs-router.at ├── ovs-vsctl.at ├── ovs-vswitchd.at ├── ovs-xapi-sync.at ├── ovsdb-client.at ├── ovsdb-cluster.at ├── ovsdb-column.at ├── ovsdb-condition.at ├── ovsdb-data.at ├── ovsdb-execution.at ├── ovsdb-idl.at ├── ovsdb-lock.at ├── ovsdb-log.at ├── ovsdb-macros.at ├── ovsdb-monitor-sort.py ├── ovsdb-monitor.at ├── ovsdb-mutation.at ├── ovsdb-query.at ├── ovsdb-rbac.at ├── ovsdb-replication.at ├── ovsdb-row.at ├── ovsdb-schema.at ├── ovsdb-server.at ├── ovsdb-table.at ├── ovsdb-tool.at ├── ovsdb-transaction.at ├── ovsdb-trigger.at ├── ovsdb-types.at ├── ovsdb.at ├── ovstest.c ├── ovstest.h ├── packet-type-aware.at ├── pmd.at ├── reconnect.at ├── rstp.at ├── run-oftest ├── run-ryu ├── stp.at ├── system-bpf-macros.at ├── system-bpf-testsuite.at ├── system-bpf-testsuite.patch ├── system-bpf-traffic.at ├── system-common-macros.at ├── system-interface.at ├── system-kmod-macros.at ├── system-kmod-testsuite.at ├── system-layer3-tunnels.at ├── system-offloads-testsuite.at ├── system-offloads-traffic.at ├── system-ovn.at ├── system-traffic.at ├── system-userspace-macros.at ├── system-userspace-packet-type-aware.at ├── system-userspace-testsuite.at ├── test-aa.c ├── test-aes128.c ├── test-atomic.c ├── test-bitmap.c ├── test-bundle.c ├── test-byte-order.c ├── test-ccmap.c ├── test-classifier.c ├── test-cmap.c ├── test-conntrack.c ├── test-csum.c ├── test-daemon.py ├── test-flows.c ├── test-hash.c ├── test-heap.c ├── test-hindex.c ├── test-hmap.c ├── test-json.c ├── test-json.py ├── test-jsonrpc.c ├── test-jsonrpc.py ├── test-l7.py ├── test-lib.c ├── test-list.c ├── test-lockfile.c ├── test-multipath.c ├── test-netflow.c ├── test-netlink-conntrack.c ├── test-odp.c ├── test-ofpbuf.c ├── test-ovn.c ├── test-ovsdb.c ├── test-ovsdb.py ├── test-packets.c ├── test-random.c ├── test-rcu.c ├── test-reconnect.c ├── test-reconnect.py ├── test-rstp.c ├── test-sflow.c ├── test-sha1.c ├── test-skiplist.c ├── test-stp.c ├── test-strtok_r.c ├── test-type-props.c ├── test-unix-socket.c ├── test-unix-socket.py ├── test-unixctl.c ├── test-unixctl.py ├── test-util.c ├── test-uuid.c ├── test-vconn.c ├── test-vlog.py ├── testsuite.at ├── testsuite.patch ├── tunnel-push-pop-ipv6.at ├── tunnel-push-pop.at ├── tunnel.at ├── unixctl-py.at ├── uuid.at ├── uuidfilt.py ├── valgrind-wrapper.in ├── vconn.at ├── vlog.at └── vtep-ctl.at ├── third-party ├── .gitignore ├── README.rst ├── automake.mk └── ofp-tcpdump.patch ├── tutorial ├── .gitignore ├── automake.mk ├── ovn-setup.sh ├── ovs-sandbox ├── t-setup ├── t-stage0 ├── t-stage1 ├── t-stage2 ├── t-stage3 └── t-stage4 ├── utilities ├── .gitignore ├── automake.mk ├── bugtool │ ├── .gitignore │ ├── automake.mk │ ├── ovs-bugtool-daemons-ver │ ├── ovs-bugtool-fdb-show │ ├── ovs-bugtool-get-dpdk-nic-numa │ ├── ovs-bugtool-ovs-appctl-dpif │ ├── ovs-bugtool-ovs-bridge-datapath-type │ ├── ovs-bugtool-ovs-ofctl-loop-over-bridges │ ├── ovs-bugtool-ovs-vswitchd-threads-affinity │ ├── ovs-bugtool-qos-configs │ ├── ovs-bugtool-tc-class-show │ ├── ovs-bugtool.8.in │ ├── ovs-bugtool.in │ └── plugins │ │ ├── kernel-info │ │ └── openvswitch.xml │ │ ├── network-status │ │ └── openvswitch.xml │ │ ├── system-configuration.xml │ │ ├── system-configuration │ │ └── openvswitch.xml │ │ └── system-logs │ │ └── openvswitch.xml ├── checkpatch.py ├── nlmon.c ├── ovs-appctl-bashcomp.bash ├── ovs-appctl.8.in ├── ovs-appctl.c ├── ovs-bpfctl.8.xml ├── ovs-bpfctl.c ├── ovs-check-dead-ifs.in ├── ovs-ctl.8 ├── ovs-ctl.in ├── ovs-dev.py ├── ovs-docker ├── ovs-dpctl-top.8.in ├── ovs-dpctl-top.in ├── ovs-dpctl.8.in ├── ovs-dpctl.c ├── ovs-l3ping.8.in ├── ovs-l3ping.in ├── ovs-lib.in ├── ovs-ofctl.8.in ├── ovs-ofctl.c ├── ovs-parse-backtrace.8 ├── ovs-parse-backtrace.in ├── ovs-pcap.1.in ├── ovs-pcap.in ├── ovs-pipegen.py ├── ovs-pki.8.in ├── ovs-pki.in ├── ovs-save ├── ovs-sim.1.xml ├── ovs-sim.in ├── ovs-tcpdump.8.in ├── ovs-tcpdump.in ├── ovs-tcpundump.1.in ├── ovs-tcpundump.in ├── ovs-test.in ├── ovs-testcontroller.8.in ├── ovs-testcontroller.c ├── ovs-vlan-bug-workaround.8.in ├── ovs-vlan-bug-workaround.c ├── ovs-vlan-bugs.man ├── ovs-vlan-test.in ├── ovs-vsctl-bashcomp.bash ├── ovs-vsctl.8.in └── ovs-vsctl.c ├── vswitchd ├── .gitignore ├── automake.mk ├── bridge.c ├── bridge.h ├── ovs-vswitchd.8.in ├── ovs-vswitchd.c ├── system-stats.c ├── system-stats.h ├── vswitch.ovsschema ├── vswitch.xml ├── xenserver.c └── xenserver.h ├── vtep ├── .gitignore ├── automake.mk ├── libvtep.sym.in ├── ovs-vtep.in ├── vtep-ctl.8.in ├── vtep-ctl.c ├── vtep-idl.ann ├── vtep.ovsschema └── vtep.xml ├── windows ├── .gitignore ├── README.rst ├── automake.mk ├── ovs-windows-installer.sln └── ovs-windows-installer │ ├── Actions │ └── OVSActions.js │ ├── Binaries │ └── .gitignore │ ├── CustomActions.wxs │ ├── Dialogs │ ├── BeginningDialog.wxs │ ├── MyEndDialog.wxs │ ├── MyTroubleshootDialog.wxs │ └── UserFinishDialog.wxs │ ├── Driver │ ├── .gitignore │ ├── Win8.1 │ │ └── .gitignore │ └── Win8 │ │ └── .gitignore │ ├── License.rtf │ ├── Product.wxs │ ├── Redist │ └── .gitignore │ ├── Services │ └── .gitignore │ ├── Symbols │ └── .gitignore │ ├── UI.wxs │ ├── images │ ├── bannrbmp.bmp │ └── dlgbmp.bmp │ └── ovs-windows-installer.wixproj └── xenserver ├── .gitignore ├── GPLv2 ├── LICENSE ├── README.rst ├── automake.mk ├── etc_init.d_openvswitch ├── etc_init.d_openvswitch-xapi-update ├── etc_logrotate.d_openvswitch ├── etc_profile.d_openvswitch.sh ├── etc_xapi.d_plugins_openvswitch-cfg-update ├── etc_xensource_scripts_vif ├── openvswitch-xen.spec.in ├── opt_xensource_libexec_InterfaceReconfigure.py ├── opt_xensource_libexec_InterfaceReconfigureBridge.py ├── opt_xensource_libexec_InterfaceReconfigureVswitch.py ├── opt_xensource_libexec_interface-reconfigure ├── usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py ├── usr_share_openvswitch_scripts_ovs-xapi-sync └── usr_share_openvswitch_scripts_sysconfig.template /.gitignore: -------------------------------------------------------------------------------- 1 | #*# 2 | *.a 3 | *.d 4 | *.gcno 5 | *.gcda 6 | *.ko 7 | *.la 8 | *.lo 9 | *.loT 10 | *.mod.c 11 | *.o 12 | *.obj 13 | *.exe 14 | *.exp 15 | *.ilk 16 | *.lib 17 | *.pdb 18 | *.pyc 19 | *.so 20 | *.suo 21 | **/*.sym 22 | *~ 23 | *,cover 24 | .#* 25 | .*.cmd 26 | .*.swp 27 | .coverage 28 | .deps 29 | .dirstamp 30 | .libs 31 | .tmp_versions 32 | .gitattributes 33 | /Makefile 34 | /Makefile.in 35 | /aclocal.m4 36 | /all-distfiles 37 | /all-gitfiles 38 | /autom4te.cache 39 | /build-arch-stamp 40 | /build-indep-stamp 41 | /compile 42 | /config.guess 43 | /config.h 44 | /config.h.in 45 | /config.log 46 | /config.status 47 | /config.sub 48 | /configure 49 | /configure-stamp 50 | /depcomp 51 | /distfiles 52 | /dist-docs 53 | /flake8-check 54 | /docs-check 55 | /install-sh 56 | /libtool 57 | /manpage-check 58 | /missing 59 | /missing-distfiles 60 | /package.m4 61 | /stamp-h1 62 | /_build-gcc 63 | /_build-clang 64 | Module.symvers 65 | TAGS 66 | cscope.* 67 | tags 68 | _debian 69 | odp-netlink.h 70 | OvsDpInterface.h 71 | /.vagrant/ 72 | testsuite.tmp.orig 73 | /rpm/ 74 | /openvswitch*.tar.gz 75 | /tests/lcov/ 76 | /Documentation/_build 77 | /.venv 78 | /cxx-check 79 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | compiler: 3 | - gcc 4 | - clang 5 | 6 | os: 7 | - linux 8 | 9 | addons: 10 | apt: 11 | packages: 12 | - bc 13 | - gcc-multilib 14 | - libssl-dev 15 | - llvm-dev 16 | - libjemalloc1 17 | - libjemalloc-dev 18 | - libnuma-dev 19 | - python-sphinx 20 | - libelf-dev 21 | 22 | before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh 23 | 24 | before_script: export PATH=$PATH:$HOME/bin 25 | 26 | sudo: false 27 | 28 | env: 29 | - OPTS="--disable-ssl" 30 | - TESTSUITE=1 KERNEL=3.16.54 31 | - TESTSUITE=1 OPTS="--enable-shared" 32 | - BUILD_ENV="-m32" OPTS="--disable-ssl" 33 | - KERNEL=3.16.54 DPDK=1 34 | - KERNEL=3.16.54 DPDK=1 OPTS="--enable-shared" 35 | - KERNEL=4.15.3 36 | - KERNEL=4.14.19 37 | - KERNEL=4.9.81 38 | - KERNEL=4.4.115 39 | - KERNEL=4.1.49 40 | - KERNEL=3.10.108 41 | - TESTSUITE=1 LIBS=-ljemalloc 42 | 43 | matrix: 44 | include: 45 | - os: osx 46 | compiler: clang 47 | env: OPTS="--disable-ssl" 48 | 49 | script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS 50 | 51 | notifications: 52 | email: 53 | recipients: 54 | - ovs-build@openvswitch.org 55 | -------------------------------------------------------------------------------- /.travis/linux-prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ev 4 | 5 | # Build and install sparse. 6 | # 7 | # Explicitly disable sparse support for llvm because some travis 8 | # environments claim to have LLVM (llvm-config exists and works) but 9 | # linking against it fails. 10 | git clone git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git 11 | cd sparse && make HAVE_LLVM= install && cd .. 12 | 13 | pip install --disable-pip-version-check --user six flake8 hacking 14 | pip install --user --upgrade docutils 15 | -------------------------------------------------------------------------------- /.travis/osx-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | 5 | CFLAGS="-Werror $CFLAGS" 6 | EXTRA_OPTS="" 7 | 8 | function configure_ovs() 9 | { 10 | ./boot.sh && ./configure $* 11 | } 12 | 13 | configure_ovs $EXTRA_OPTS $* 14 | 15 | if [ "$CC" = "clang" ]; then 16 | make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument" 17 | else 18 | make CFLAGS="$CFLAGS $BUILD_ENV" 19 | fi 20 | if [ "$TESTSUITE" ] && [ "$CC" != "clang" ]; then 21 | if ! make distcheck RECHECK=yes; then 22 | # testsuite.log is necessary for debugging. 23 | cat */_build/tests/testsuite.log 24 | exit 1 25 | fi 26 | fi 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /.travis/osx-prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | pip2 install --user six 4 | pip2 install --user --upgrade docutils 5 | 6 | brew update || true 7 | brew uninstall libtool && brew install libtool || true 8 | -------------------------------------------------------------------------------- /Documentation/_static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/Documentation/_static/logo.png -------------------------------------------------------------------------------- /Documentation/_static/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/Documentation/_static/overview.png -------------------------------------------------------------------------------- /Documentation/howto/qos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/Documentation/howto/qos.png -------------------------------------------------------------------------------- /Documentation/howto/sflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/Documentation/howto/sflow.png -------------------------------------------------------------------------------- /Documentation/howto/tunneling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/Documentation/howto/tunneling.png -------------------------------------------------------------------------------- /Documentation/howto/vlan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/Documentation/howto/vlan.png -------------------------------------------------------------------------------- /Documentation/internals/authors.rst: -------------------------------------------------------------------------------- 1 | .. 2 | Licensed under the Apache License, Version 2.0 (the "License"); you may 3 | not use this file except in compliance with the License. You may obtain 4 | a copy of the License at 5 | 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, software 9 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 10 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 11 | License for the specific language governing permissions and limitations 12 | under the License. 13 | 14 | Convention for heading levels in Open vSwitch documentation: 15 | 16 | ======= Heading 0 (reserved for the title in a document) 17 | ------- Heading 1 18 | ~~~~~~~ Heading 2 19 | +++++++ Heading 3 20 | ''''''' Heading 4 21 | 22 | Avoid deeper levels because they do not render well. 23 | 24 | .. include:: ../../AUTHORS.rst 25 | -------------------------------------------------------------------------------- /Documentation/internals/maintainers.rst: -------------------------------------------------------------------------------- 1 | .. 2 | Licensed under the Apache License, Version 2.0 (the "License"); you may 3 | not use this file except in compliance with the License. You may obtain 4 | a copy of the License at 5 | 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, software 9 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 10 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 11 | License for the specific language governing permissions and limitations 12 | under the License. 13 | 14 | Convention for heading levels in Open vSwitch documentation: 15 | 16 | ======= Heading 0 (reserved for the title in a document) 17 | ------- Heading 1 18 | ~~~~~~~ Heading 2 19 | +++++++ Heading 3 20 | ''''''' Heading 4 21 | 22 | Avoid deeper levels because they do not render well. 23 | 24 | .. include:: ../../MAINTAINERS.rst 25 | -------------------------------------------------------------------------------- /Documentation/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx>=1.1,<2.0 2 | ovs_sphinx_theme>=1.0,<1.1 3 | -------------------------------------------------------------------------------- /Documentation/topics/dpdk/index.rst: -------------------------------------------------------------------------------- 1 | .. 2 | Licensed under the Apache License, Version 2.0 (the "License"); you may 3 | not use this file except in compliance with the License. You may obtain 4 | a copy of the License at 5 | 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, software 9 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 10 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 11 | License for the specific language governing permissions and limitations 12 | under the License. 13 | 14 | Convention for heading levels in Open vSwitch documentation: 15 | 16 | ======= Heading 0 (reserved for the title in a document) 17 | ------- Heading 1 18 | ~~~~~~~ Heading 2 19 | +++++++ Heading 3 20 | ''''''' Heading 4 21 | 22 | Avoid deeper levels because they do not render well. 23 | 24 | ================= 25 | The DPDK Datapath 26 | ================= 27 | 28 | .. toctree:: 29 | :maxdepth: 2 30 | 31 | vhost-user 32 | ring 33 | -------------------------------------------------------------------------------- /boot.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | autoreconf --install --force 3 | -------------------------------------------------------------------------------- /bpf/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | *.o 4 | /distfiles 5 | -------------------------------------------------------------------------------- /build-aux/.gitignore: -------------------------------------------------------------------------------- 1 | /compile 2 | /config.guess 3 | /config.sub 4 | /depcomp 5 | /install-sh 6 | /ltmain.sh 7 | /missing 8 | -------------------------------------------------------------------------------- /build-aux/automake.mk: -------------------------------------------------------------------------------- 1 | EXTRA_DIST += \ 2 | build-aux/calculate-schema-cksum \ 3 | build-aux/cccl \ 4 | build-aux/cksum-schema-check \ 5 | build-aux/dist-docs \ 6 | build-aux/dpdkstrip.py \ 7 | build-aux/sodepends.py \ 8 | build-aux/soexpand.py \ 9 | build-aux/text2c \ 10 | build-aux/xml2nroff 11 | 12 | FLAKE8_PYFILES += \ 13 | $(srcdir)/build-aux/xml2nroff \ 14 | build-aux/dpdkstrip.py \ 15 | build-aux/sodepends.py \ 16 | build-aux/soexpand.py 17 | -------------------------------------------------------------------------------- /build-aux/calculate-schema-cksum: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | schema=$1 4 | sed '/"cksum": *"[0-9][0-9]* [0-9][0-9]*",/d' $schema | cksum 5 | -------------------------------------------------------------------------------- /build-aux/cksum-schema-check: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | schema=$1 4 | stamp=$2 5 | 6 | cksumcheckpath=`dirname $0` 7 | sum=`$cksumcheckpath/calculate-schema-cksum $schema` 8 | expected=`sed -n 's/.*"cksum": "\(.*\)".*/\1/p' $schema` 9 | if test "X$sum" = "X$expected"; then 10 | touch $stamp 11 | else 12 | ln=`sed -n '/"cksum":/=' $schema` 13 | echo >&2 "$schema:$ln: The checksum \"$sum\" was calculated from the schema file and does not match cksum field in the schema file - you should probably update the version number and the checksum in the schema file with the value listed here." 14 | exit 1 15 | fi 16 | -------------------------------------------------------------------------------- /build-aux/extract-odp-netlink-windows-dp-h: -------------------------------------------------------------------------------- 1 | # This is a "sed" script that transforms into a 2 | # form that is suitable for inclusion within the Open vSwitch tree on 3 | # windows system. The transformed header file can be included by windows 4 | # driver modules. 5 | 6 | # Add a header warning that this is a generated file. 7 | 1i\ 8 | /* -*- mode: c; buffer-read-only: t -*- */\ 9 | /* Generated automatically from -- do not modify! */\ 10 | \ 11 | \ 12 | 13 | # Avoid using reserved names in header guards. 14 | s/_LINUX_OPENVSWITCH_H/__OVS_DP_INTERFACE_H_/ 15 | 16 | # and use the appropriate userspace header. 17 | s,,"Types.h", 18 | 19 | # Add ETH_ADDR_LEN macro to avoid including userspace packet.h 20 | s,#include ,\n#ifndef ETH_ADDR_LEN \ 21 | #define ETH_ADDR_LEN 6 \n#endif, 22 | 23 | # Use OVS's own ETH_ADDR_LEN instead of Linux-specific ETH_ALEN. 24 | s/ETH_ALEN/ETH_ADDR_LEN/ 25 | -------------------------------------------------------------------------------- /build-aux/text2c: -------------------------------------------------------------------------------- 1 | #! /usr/bin/python 2 | 3 | import re 4 | import sys 5 | 6 | """This utility reads its input, which should be plain text, and 7 | prints it back transformed into quoted strings that may be #included 8 | into C source code.""" 9 | 10 | while True: 11 | line = sys.stdin.readline() 12 | if not line: 13 | break 14 | 15 | s = line.replace("\\", "\\\\").replace('"', '\\"').replace("\n", "\\n") 16 | print('"' + s + '"') 17 | -------------------------------------------------------------------------------- /datapath-windows/.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | /Package/x64/ 3 | *.db 4 | *.opendb 5 | *.opensdf 6 | *.sdf 7 | /ovsext/x64/ 8 | /x64 9 | /ovsext/ovsext.aps 10 | -------------------------------------------------------------------------------- /datapath-windows/include/automake.mk: -------------------------------------------------------------------------------- 1 | if WIN32 2 | BUILT_SOURCES += $(srcdir)/datapath-windows/include/OvsDpInterface.h 3 | endif 4 | 5 | $(srcdir)/datapath-windows/include/OvsDpInterface.h: \ 6 | datapath/linux/compat/include/linux/openvswitch.h \ 7 | build-aux/extract-odp-netlink-windows-dp-h 8 | $(AM_V_GEN)sed -f $(srcdir)/build-aux/extract-odp-netlink-windows-dp-h < $< > $@ 9 | 10 | EXTRA_DIST += $(srcdir)/build-aux/extract-odp-netlink-windows-dp-h 11 | 12 | CLEANFILES += $(srcdir)/datapath-windows/include/OvsDpInterface.h 13 | -------------------------------------------------------------------------------- /datapath-windows/misc/install.cmd: -------------------------------------------------------------------------------- 1 | netcfg -l .\ovsext.inf -c s -i OVSExt 2 | 3 | net stop vmms 4 | net start vmms 5 | -------------------------------------------------------------------------------- /datapath-windows/misc/uninstall.cmd: -------------------------------------------------------------------------------- 1 | netcfg -u OVSExt 2 | -------------------------------------------------------------------------------- /datapath-windows/ovsext/Atomic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __ATOMIC_H_ 18 | #define __ATOMIC_H_ 1 19 | 20 | static __inline UINT64 21 | atomic_add64(UINT64 *ptr, UINT32 val) 22 | { 23 | return InterlockedAdd64((LONGLONG volatile *) ptr, (LONGLONG) val); 24 | } 25 | 26 | static __inline UINT64 27 | atomic_inc64(UINT64 *ptr) 28 | { 29 | return InterlockedIncrement64((LONGLONG volatile *) ptr); 30 | } 31 | 32 | #endif /* __ATOMIC_H_ */ 33 | -------------------------------------------------------------------------------- /datapath-windows/ovsext/precomp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #include "Types.h" 24 | 25 | #include "..\include\OvsDpInterface.h" 26 | 27 | #include "Util.h" 28 | #include "Netlink/NetlinkError.h" 29 | #include "Netlink/Netlink.h" 30 | #include "Netlink/NetlinkProto.h" 31 | #include "..\include\OvsDpInterfaceExt.h" 32 | #include "..\include\OvsDpInterfaceCtExt.h" 33 | #include "DpInternal.h" 34 | -------------------------------------------------------------------------------- /datapath-windows/ovsext/precompsrc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "precomp.h" 18 | -------------------------------------------------------------------------------- /datapath/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | *.cmd 4 | *.ko 5 | *.mod.c 6 | Module.symvers 7 | /distfiles 8 | -------------------------------------------------------------------------------- /datapath/linux/.gitignore: -------------------------------------------------------------------------------- 1 | /Kbuild 2 | /Makefile 3 | /Makefile.main 4 | /Module.markers 5 | /kcompat.h 6 | /modules.order 7 | /tmp 8 | /*.c 9 | -------------------------------------------------------------------------------- /datapath/linux/Kbuild.in: -------------------------------------------------------------------------------- 1 | # -*- makefile -*- 2 | export builddir = @abs_builddir@ 3 | export srcdir = @abs_srcdir@ 4 | export top_srcdir = @abs_top_srcdir@ 5 | export VERSION = @VERSION@ 6 | 7 | include $(srcdir)/../Modules.mk 8 | include $(srcdir)/Modules.mk 9 | 10 | ccflags-y := -DVERSION=\"$(VERSION)\" 11 | ccflags-y += -I$(srcdir)/.. 12 | ccflags-y += -I$(builddir)/.. 13 | ccflags-y += -g 14 | ccflags-y += -include $(builddir)/kcompat.h 15 | 16 | # These include directories have to go before -I$(KSRC)/include. 17 | # NOSTDINC_FLAGS just happens to be a variable that goes in the 18 | # right place, even though it's conceptually incorrect. 19 | NOSTDINC_FLAGS += -I$(top_srcdir)/include -I$(srcdir)/compat -I$(srcdir)/compat/include 20 | 21 | obj-m := $(subst _,-,$(patsubst %,%.o,$(build_modules))) 22 | 23 | define module_template 24 | $(1)-y = $$(notdir $$(patsubst %.c,%.o,$($(1)_sources))) 25 | endef 26 | 27 | $(foreach module,$(build_multi_modules),$(eval $(call module_template,$(module)))) 28 | -------------------------------------------------------------------------------- /datapath/linux/Makefile.in: -------------------------------------------------------------------------------- 1 | ifeq ($(KERNELRELEASE),) 2 | # We're being called directly by running make in this directory. 3 | include Makefile.main 4 | else 5 | # We're being included by the Linux kernel build system 6 | include Kbuild 7 | endif 8 | 9 | 10 | -------------------------------------------------------------------------------- /datapath/linux/compat/build-aux/export-check-whitelist: -------------------------------------------------------------------------------- 1 | pskb_expand_head -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/bug.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_BUG_WRAPPER_H 2 | #define __LINUX_BUG_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifdef __CHECKER__ 7 | #ifndef BUILD_BUG_ON_INVALID 8 | #define BUILD_BUG_ON_INVALID(e) (0) 9 | #endif 10 | 11 | #endif /* __CHECKER__ */ 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/cache.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_CACHE_WRAPPER_H 2 | #define __LINUX_CACHE_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | /* Upstream commit c74ba8b3480d ("arch: Introduce post-init read-only memory") 7 | * introduced the __ro_after_init attribute, however it wasn't applied to 8 | * generic netlink sockets until commit 34158151d2aa ("netfilter: cttimeout: 9 | * use nf_ct_iterate_cleanup_net to unlink timeout objs"). Using it on 10 | * genetlink before the latter commit leads to crash on module unload. 11 | * For kernels < 4.10, define it as empty. */ 12 | #ifdef HAVE_GENL_FAMILY_LIST 13 | #ifdef __ro_after_init 14 | #undef __ro_after_init 15 | #endif /* #ifdef __ro_after_init */ 16 | #define __ro_after_init 17 | #else 18 | #ifndef __ro_after_init 19 | #define __ro_after_init 20 | #endif /* #ifndef __ro_after_init */ 21 | #endif /* #ifdef HAVE_GENL_FAMILY_LIST */ 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/compiler-gcc.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_COMPILER_H 2 | #ifndef HAVE_LINUX_COMPILER_TYPES_H 3 | #error "Please don't include directly, include instead." 4 | #endif 5 | #endif 6 | 7 | #include_next 8 | 9 | #ifndef __packed 10 | #define __packed __attribute__((packed)) 11 | #endif 12 | 13 | #ifndef __always_unused 14 | #define __always_unused __attribute__((unused)) 15 | #endif 16 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/compiler.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_COMPILER_WRAPPER_H 2 | #define __LINUX_COMPILER_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef __percpu 7 | #define __percpu 8 | #endif 9 | 10 | #ifndef __rcu 11 | #define __rcu 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/cpumask.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_CPUMASK_WRAPPER_H 2 | #define __LINUX_CPUMASK_WRAPPER_H 3 | 4 | #include_next 5 | 6 | /* for_each_cpu was renamed for_each_possible_cpu in 2.6.18. */ 7 | #ifndef for_each_possible_cpu 8 | #define for_each_possible_cpu for_each_cpu 9 | #endif 10 | 11 | #endif /* linux/cpumask.h wrapper */ 12 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/err.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_ERR_WRAPPER_H 2 | #define __LINUX_ERR_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_ERR_CAST 7 | /** 8 | * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type 9 | * @ptr: The pointer to cast. 10 | * 11 | * Explicitly cast an error-valued pointer to another pointer type in such a 12 | * way as to make it clear that's what's going on. 13 | */ 14 | static inline void *ERR_CAST(const void *ptr) 15 | { 16 | /* cast away the const */ 17 | return (void *) ptr; 18 | } 19 | #endif /* HAVE_ERR_CAST */ 20 | 21 | #ifndef HAVE_IS_ERR_OR_NULL 22 | static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr) 23 | { 24 | return !ptr || IS_ERR_VALUE((unsigned long)ptr); 25 | } 26 | #endif 27 | 28 | #ifndef HAVE_PTR_ERR_OR_ZERO 29 | static inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr) 30 | { 31 | if (IS_ERR(ptr)) 32 | return PTR_ERR(ptr); 33 | else 34 | return 0; 35 | } 36 | #endif 37 | #endif 38 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/genetlink.h: -------------------------------------------------------------------------------- 1 | #ifndef _UAPI__LINUX_GENERIC_NETLINK_WRAPPER_H 2 | #define _UAPI__LINUX_GENERIC_NETLINK_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifndef GENL_UNS_ADMIN_PERM 7 | #define GENL_UNS_ADMIN_PERM GENL_ADMIN_PERM 8 | #endif 9 | 10 | #ifdef GENL_ID_GENERATE 11 | #if GENL_ID_GENERATE != 0 12 | #error "GENL_ID_GENERATE is assumed to be zero" 13 | #endif 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/if.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_IF_WRAPPER_H 2 | #define __LINUX_IF_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/if_ether.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_IF_ETHER_WRAPPER_H 2 | #define __LINUX_IF_ETHER_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef ETH_MIN_MTU 7 | #define ETH_MIN_MTU 68 /* Min IPv4 MTU per RFC791 */ 8 | #endif 9 | 10 | #ifndef ETH_MAX_MTU 11 | #define ETH_MAX_MTU 0xFFFFU /* 65535, same as IP_MAX_MTU */ 12 | #endif 13 | 14 | #ifndef ETH_P_802_3_MIN 15 | #define ETH_P_802_3_MIN 0x0600 16 | #endif 17 | 18 | #ifndef ETH_P_8021AD 19 | #define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ 20 | #endif 21 | 22 | #ifndef ETH_P_NSH 23 | #define ETH_P_NSH 0x894F /* Network Service Header */ 24 | #endif 25 | 26 | #define inner_eth_hdr rpl_inner_eth_hdr 27 | static inline struct ethhdr *inner_eth_hdr(const struct sk_buff *skb) 28 | { 29 | return (struct ethhdr *)skb_inner_mac_header(skb); 30 | } 31 | #endif 32 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/jiffies.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_JIFFIES_WRAPPER_H 2 | #define __LINUX_JIFFIES_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #include 7 | 8 | /* Same as above, but does so with platform independent 64bit types. 9 | * These must be used when utilizing jiffies_64 (i.e. return value of 10 | * get_jiffies_64() */ 11 | 12 | #ifndef time_after64 13 | #define time_after64(a, b) \ 14 | (typecheck(__u64, a) && \ 15 | typecheck(__u64, b) && \ 16 | ((__s64)(b) - (__s64)(a) < 0)) 17 | #endif 18 | 19 | #ifndef time_before64 20 | #define time_before64(a, b) time_after64(b, a) 21 | #endif 22 | 23 | #ifndef time_after_eq64 24 | #define time_after_eq64(a, b) \ 25 | (typecheck(__u64, a) && \ 26 | typecheck(__u64, b) && \ 27 | ((__s64)(a) - (__s64)(b) >= 0)) 28 | #endif 29 | 30 | #ifndef time_before_eq64 31 | #define time_before_eq64(a, b) time_after_eq64(b, a) 32 | #endif 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/list.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_LIST_WRAPPER_H 2 | #define __LINUX_LIST_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef hlist_entry_safe 7 | #define hlist_entry_safe(ptr, type, member) \ 8 | ({ typeof(ptr) ____ptr = (ptr); \ 9 | ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ 10 | }) 11 | 12 | #undef hlist_for_each_entry 13 | #define hlist_for_each_entry(pos, head, member) \ 14 | for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\ 15 | pos; \ 16 | pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) 17 | 18 | #undef hlist_for_each_entry_safe 19 | #define hlist_for_each_entry_safe(pos, n, head, member) \ 20 | for (pos = hlist_entry_safe((head)->first, typeof(*pos), member);\ 21 | pos && ({ n = pos->member.next; 1; }); \ 22 | pos = hlist_entry_safe(n, typeof(*pos), member)) 23 | 24 | #endif 25 | 26 | #ifndef list_first_entry_or_null 27 | #define list_first_entry_or_null(ptr, type, member) \ 28 | (!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL) 29 | #endif 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/netfilter_ipv6.h: -------------------------------------------------------------------------------- 1 | #ifndef __NETFILTER_IPV6_WRAPPER_H 2 | #define __NETFILTER_IPV6_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #include 7 | #include /* For OVS_VPORT_OUTPUT_PARAMS */ 8 | #include 9 | 10 | #ifndef HAVE_NF_IPV6_OPS_FRAGMENT 11 | /* Try to minimise changes required to the actions.c code for calling IPv6 12 | * fragmentation. We can keep the fragment() API mostly the same, except that 13 | * the callback parameter needs to be in the form that older kernels accept. 14 | * We don't backport the other ipv6_ops as they're currently unused by OVS. */ 15 | struct ovs_nf_ipv6_ops { 16 | int (*fragment)(struct sock *sk, struct sk_buff *skb, 17 | int (*output)(OVS_VPORT_OUTPUT_PARAMS)); 18 | }; 19 | #define nf_ipv6_ops ovs_nf_ipv6_ops 20 | 21 | static struct ovs_nf_ipv6_ops ovs_ipv6_ops = { 22 | .fragment = ip6_fragment, 23 | }; 24 | 25 | static inline struct ovs_nf_ipv6_ops *ovs_nf_get_ipv6_ops(void) 26 | { 27 | return &ovs_ipv6_ops; 28 | } 29 | #define nf_get_ipv6_ops ovs_nf_get_ipv6_ops 30 | 31 | #endif /* HAVE_NF_IPV6_OPS_FRAGMENT */ 32 | #endif /* __NETFILTER_IPV6_WRAPPER_H */ 33 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/netlink.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_NETLINK_WRAPPER_H 2 | #define __LINUX_NETLINK_WRAPPER_H 1 3 | 4 | #include 5 | #include_next 6 | 7 | #ifndef NLA_TYPE_MASK 8 | #define NLA_F_NESTED (1 << 15) 9 | #define NLA_F_NET_BYTEORDER (1 << 14) 10 | #define NLA_TYPE_MASK (~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)) 11 | #endif 12 | 13 | #include 14 | 15 | #ifndef NLMSG_DEFAULT_SIZE 16 | #define NLMSG_DEFAULT_SIZE (NLMSG_GOODSIZE - NLMSG_HDRLEN) 17 | #endif 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/percpu.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_PERCPU_WRAPPER_H 2 | #define __LINUX_PERCPU_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #if !defined this_cpu_ptr 7 | #define this_cpu_ptr(ptr) per_cpu_ptr(ptr, smp_processor_id()) 8 | #endif 9 | 10 | #ifdef HAVE_RHEL6_PER_CPU 11 | #undef this_cpu_read 12 | #undef this_cpu_inc 13 | #undef this_cpu_dec 14 | #endif 15 | 16 | #if !defined this_cpu_read 17 | #define this_cpu_read(ptr) percpu_read(ptr) 18 | #endif 19 | 20 | #if !defined this_cpu_inc 21 | #define this_cpu_inc(ptr) percpu_add(ptr, 1) 22 | #endif 23 | 24 | #if !defined this_cpu_dec 25 | #define this_cpu_dec(ptr) percpu_sub(ptr, 1) 26 | #endif 27 | 28 | #ifndef alloc_percpu_gfp 29 | #define NEED_ALLOC_PERCPU_GFP 30 | 31 | void __percpu *__alloc_percpu_gfp(size_t size, size_t align, gfp_t gfp); 32 | 33 | #define alloc_percpu_gfp(type, gfp) \ 34 | (typeof(type) __percpu *)__alloc_percpu_gfp(sizeof(type), \ 35 | __alignof__(type), gfp) 36 | #endif 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/random.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_RANDOM_WRAPPER_H 2 | #define __LINUX_RANDOM_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_PRANDOM_U32 7 | #define prandom_u32() random32() 8 | #endif 9 | 10 | #ifndef HAVE_PRANDOM_U32_MAX 11 | static inline u32 prandom_u32_max(u32 ep_ro) 12 | { 13 | return (u32)(((u64) prandom_u32() * ep_ro) >> 32); 14 | } 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/rculist.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_RCULIST_WRAPPER_H 2 | #define __LINUX_RCULIST_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifndef hlist_first_rcu 7 | #define hlist_first_rcu(head) (*((struct hlist_node __rcu **)(&(head)->first))) 8 | #define hlist_next_rcu(node) (*((struct hlist_node __rcu **)(&(node)->next))) 9 | #define hlist_pprev_rcu(node) (*((struct hlist_node __rcu **)((node)->pprev))) 10 | #endif 11 | 12 | #undef hlist_for_each_entry_rcu 13 | #define hlist_for_each_entry_rcu(pos, head, member) \ 14 | for (pos = hlist_entry_safe (rcu_dereference_raw(hlist_first_rcu(head)),\ 15 | typeof(*(pos)), member); \ 16 | pos; \ 17 | pos = hlist_entry_safe(rcu_dereference_raw(hlist_next_rcu(\ 18 | &(pos)->member)), typeof(*(pos)), member)) 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/rcupdate.h: -------------------------------------------------------------------------------- 1 | #ifndef __RCUPDATE_WRAPPER_H 2 | #define __RCUPDATE_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef rcu_dereference_check 7 | #define rcu_dereference_check(p, c) rcu_dereference(p) 8 | #endif 9 | 10 | #ifndef rcu_dereference_protected 11 | #define rcu_dereference_protected(p, c) (p) 12 | #endif 13 | 14 | #ifndef rcu_dereference_raw 15 | #define rcu_dereference_raw(p) rcu_dereference_check(p, 1) 16 | #endif 17 | 18 | #ifndef rcu_access_pointer 19 | #define rcu_access_pointer(p) rcu_dereference(p) 20 | #endif 21 | 22 | #ifndef HAVE_RCU_READ_LOCK_HELD 23 | static inline int rcu_read_lock_held(void) 24 | { 25 | return 1; 26 | } 27 | #endif 28 | 29 | #ifndef RCU_INITIALIZER 30 | #define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v) 31 | #endif 32 | 33 | #ifndef RCU_INIT_POINTER 34 | #define RCU_INIT_POINTER(p, v) \ 35 | do { \ 36 | p = RCU_INITIALIZER(v); \ 37 | } while (0) 38 | 39 | #endif 40 | 41 | #endif /* linux/rcupdate.h wrapper */ 42 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/stddef.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_STDDEF_WRAPPER_H 2 | #define __LINUX_STDDEF_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifdef __KERNEL__ 7 | 8 | #ifndef HAVE_BOOL_TYPE 9 | enum { 10 | false = 0, 11 | true = 1 12 | }; 13 | #endif /* !HAVE_BOOL_TYPE */ 14 | 15 | #ifndef offsetofend 16 | #define offsetofend(TYPE, MEMBER) \ 17 | (offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER)) 18 | #endif 19 | 20 | #endif /* __KERNEL__ */ 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/timekeeping.h: -------------------------------------------------------------------------------- 1 | #ifndef _LINUX_TIMEKEEPING_WRAPPER_H 2 | #define _LINUX_TIMEKEEPING_WRAPPER_H 3 | 4 | #ifndef HAVE_KTIME_GET_TS64 5 | #define ktime_get_ts64 ktime_get_ts 6 | #define timespec64 timespec 7 | #else 8 | #include_next 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/types.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_TYPES_WRAPPER_H 2 | #define __LINUX_TYPES_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_CSUM_TYPES 7 | typedef __u16 __bitwise __sum16; 8 | typedef __u32 __bitwise __wsum; 9 | #endif 10 | 11 | #ifndef HAVE_BOOL_TYPE 12 | typedef _Bool bool; 13 | #endif /* !HAVE_BOOL_TYPE */ 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/udp.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_UDP_WRAPPER_H 2 | #define __LINUX_UDP_WRAPPER_H 1 3 | 4 | #include_next 5 | #include 6 | 7 | #ifndef HAVE_NO_CHECK6_TX 8 | static inline void udp_set_no_check6_tx(struct sock *sk, bool val) 9 | { 10 | #ifdef HAVE_SK_NO_CHECK_TX 11 | sk->sk_no_check_tx = val; 12 | #endif 13 | } 14 | 15 | static inline void udp_set_no_check6_rx(struct sock *sk, bool val) 16 | { 17 | #ifdef HAVE_SK_NO_CHECK_TX 18 | sk->sk_no_check_rx = val; 19 | #else 20 | /* since netwroking stack is not checking for zero UDP checksum 21 | * check it in OVS module. */ 22 | #define OVS_CHECK_UDP_TUNNEL_ZERO_CSUM 23 | #endif 24 | } 25 | #endif 26 | 27 | #ifdef OVS_CHECK_UDP_TUNNEL_ZERO_CSUM 28 | #define udp6_csum_zero_error rpl_udp6_csum_zero_error 29 | 30 | void rpl_udp6_csum_zero_error(struct sk_buff *skb); 31 | #endif 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/linux/workqueue.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_WORKQUEUE_WRAPPER_H 2 | #define __LINUX_WORKQUEUE_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) 7 | #define queue_work(wq, dw) schedule_work(dw); 8 | #endif 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/inetpeer.h: -------------------------------------------------------------------------------- 1 | #ifndef _NET_INETPEER_WRAPPER_H 2 | #define _NET_INETPEER_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_INETPEER_VIF_SUPPORT 7 | static inline struct inet_peer *rpl_inet_getpeer_v4(struct inet_peer_base *base, 8 | __be32 v4daddr, int vif, 9 | int create) 10 | { 11 | return inet_getpeer_v4(base, v4daddr, create); 12 | } 13 | #define inet_getpeer_v4 rpl_inet_getpeer_v4 14 | #endif /* HAVE_INETPEER_VIF_SUPPORT */ 15 | 16 | #endif /* _NET_INETPEER_WRAPPER_H */ 17 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/ip6_fib.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Linux INET6 implementation 3 | * 4 | * Authors: 5 | * Pedro Roque 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 10 | * 2 of the License, or (at your option) any later version. 11 | */ 12 | 13 | #ifndef _IP6_FIB_WRAPPER_H 14 | #define _IP6_FIB_WRAPPER_H 15 | 16 | #include_next 17 | 18 | #ifndef RTF_PCPU 19 | #define RTF_PCPU 0x40000000 20 | #endif 21 | 22 | #ifndef RTF_LOCAL 23 | #define RTF_LOCAL 0x80000000 24 | #endif 25 | 26 | #define rt6_get_cookie rpl_rt6_get_cookie 27 | static inline u32 rt6_get_cookie(const struct rt6_info *rt) 28 | { 29 | if (rt->rt6i_flags & RTF_PCPU || 30 | #ifdef HAVE_DST_NOCACHE 31 | (unlikely(rt->dst.flags & DST_NOCACHE) && rt->dst.from)) 32 | #else 33 | (unlikely(!list_empty(&rt->rt6i_uncached)) && rt->dst.from)) 34 | #endif 35 | rt = (struct rt6_info *)(rt->dst.from); 36 | 37 | return rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0; 38 | } 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/ip6_tunnel.h: -------------------------------------------------------------------------------- 1 | #ifndef _NET_IP6_TUNNEL_WRAPER_H 2 | #define _NET_IP6_TUNNEL_WRAPER_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include_next 9 | 10 | #define ip6tunnel_xmit rpl_ip6tunnel_xmit 11 | void rpl_ip6tunnel_xmit(struct sock *sk, struct sk_buff *skb, 12 | struct net_device *dev); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/lisp.h: -------------------------------------------------------------------------------- 1 | #ifndef __NET_LISP_WRAPPER_H 2 | #define __NET_LISP_WRAPPER_H 1 3 | 4 | #ifdef CONFIG_INET 5 | #include 6 | #endif 7 | 8 | 9 | #ifdef CONFIG_INET 10 | #define lisp_dev_create_fb rpl_lisp_dev_create_fb 11 | struct net_device *rpl_lisp_dev_create_fb(struct net *net, const char *name, 12 | u8 name_assign_type, u16 dst_port); 13 | #endif /*ifdef CONFIG_INET */ 14 | 15 | #define lisp_init_module rpl_lisp_init_module 16 | int rpl_lisp_init_module(void); 17 | 18 | #define lisp_cleanup_module rpl_lisp_cleanup_module 19 | void rpl_lisp_cleanup_module(void); 20 | 21 | #define lisp_xmit rpl_lisp_xmit 22 | netdev_tx_t rpl_lisp_xmit(struct sk_buff *skb); 23 | 24 | #define lisp_fill_metadata_dst ovs_lisp_fill_metadata_dst 25 | int ovs_lisp_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb); 26 | 27 | #endif /*ifdef__NET_LISP_H */ 28 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/net_namespace.h: -------------------------------------------------------------------------------- 1 | #ifndef __NET_NET_NAMESPACE_WRAPPER_H 2 | #define __NET_NET_NAMESPACE_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_POSSIBLE_NET_T 7 | typedef struct { 8 | #ifdef CONFIG_NET_NS 9 | struct net *net; 10 | #endif 11 | } possible_net_t; 12 | 13 | static inline void rpl_write_pnet(possible_net_t *pnet, struct net *net) 14 | { 15 | #ifdef CONFIG_NET_NS 16 | pnet->net = net; 17 | #endif 18 | } 19 | 20 | static inline struct net *rpl_read_pnet(const possible_net_t *pnet) 21 | { 22 | #ifdef CONFIG_NET_NS 23 | return pnet->net; 24 | #else 25 | return &init_net; 26 | #endif 27 | } 28 | #else /* Linux >= 4.1 */ 29 | #define rpl_read_pnet read_pnet 30 | #define rpl_write_pnet write_pnet 31 | #endif /* Linux >= 4.1 */ 32 | 33 | #endif /* net/net_namespace.h wrapper */ 34 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/netfilter/nf_conntrack.h: -------------------------------------------------------------------------------- 1 | #ifndef _NF_CONNTRACK_WRAPPER_H 2 | #define _NF_CONNTRACK_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_NF_CT_GET_TUPLEPR_TAKES_STRUCT_NET 7 | static inline bool rpl_nf_ct_get_tuplepr(const struct sk_buff *skb, 8 | unsigned int nhoff, 9 | u_int16_t l3num, struct net *net, 10 | struct nf_conntrack_tuple *tuple) 11 | { 12 | return nf_ct_get_tuplepr(skb, nhoff, l3num, tuple); 13 | } 14 | #define nf_ct_get_tuplepr rpl_nf_ct_get_tuplepr 15 | #endif 16 | 17 | #ifndef HAVE_NF_CT_SET 18 | static inline void 19 | nf_ct_set(struct sk_buff *skb, struct nf_conn *ct, enum ip_conntrack_info info) 20 | { 21 | skb->nfct = &ct->ct_general; 22 | skb->nfctinfo = info; 23 | } 24 | #endif 25 | #endif /* _NF_CONNTRACK_WRAPPER_H */ 26 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/netfilter/nf_conntrack_expect.h: -------------------------------------------------------------------------------- 1 | #ifndef _NF_CONNTRACK_EXPECT_WRAPPER_H 2 | #define _NF_CONNTRACK_EXPECT_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_NF_CT_ZONE_INIT 7 | 8 | #include 9 | #include 10 | 11 | static inline struct nf_conntrack_expect * 12 | rpl___nf_ct_expect_find(struct net *net, 13 | const struct nf_conntrack_zone *zone, 14 | const struct nf_conntrack_tuple *tuple) 15 | { 16 | return __nf_ct_expect_find(net, zone->id, tuple); 17 | } 18 | #define __nf_ct_expect_find rpl___nf_ct_expect_find 19 | 20 | #endif /* HAVE_NF_CT_ZONE_INIT */ 21 | #endif /* _NF_CONNTRACK_EXPECT_WRAPPER_H */ 22 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/netfilter/nf_conntrack_helper.h: -------------------------------------------------------------------------------- 1 | #ifndef _NF_CONNTRACK_HELPER_WRAPPER_H 2 | #define _NF_CONNTRACK_HELPER_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_NF_CONNTRACK_HELPER_PUT 7 | static inline void nf_conntrack_helper_put(struct nf_conntrack_helper *helper) { 8 | module_put(helper->me); 9 | } 10 | #endif 11 | 12 | #endif /* _NF_CONNTRACK_HELPER_WRAPPER_H */ 13 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/netfilter/nf_conntrack_seqadj.h: -------------------------------------------------------------------------------- 1 | #ifndef _NF_CONNTRACK_SEQADJ_WRAPPER_H 2 | #define _NF_CONNTRACK_SEQADJ_WRAPPER_H 3 | 4 | #ifdef HAVE_NF_CT_SEQ_ADJUST 5 | #include_next 6 | #else 7 | 8 | #include 9 | 10 | /* TCP sequence number adjustment. Returns 1 on success, 0 on failure */ 11 | static inline int 12 | nf_ct_seq_adjust(struct sk_buff *skb, 13 | struct nf_conn *ct, enum ip_conntrack_info ctinfo, 14 | unsigned int protoff) 15 | { 16 | typeof(nf_nat_seq_adjust_hook) seq_adjust; 17 | 18 | seq_adjust = rcu_dereference(nf_nat_seq_adjust_hook); 19 | if (!seq_adjust || 20 | !seq_adjust(skb, ct, ctinfo, ip_hdrlen(skb))) { 21 | NF_CT_STAT_INC_ATOMIC(nf_ct_net(ct), drop); 22 | return 0; 23 | } 24 | 25 | return 1; 26 | } 27 | 28 | #endif /* HAVE_NF_CT_SEQ_ADJUST */ 29 | 30 | #endif /* _NF_CONNTRACK_SEQADJ_WRAPPER_H */ 31 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/protocol.h: -------------------------------------------------------------------------------- 1 | #ifndef _NET_PROTOCOL_WRAPPER_H 2 | #define _NET_PROTOCOL_WRAPPER_H 3 | 4 | #include_next 5 | 6 | #ifdef HAVE_UDP_OFFLOAD 7 | 8 | #ifndef HAVE_UDP_ADD_OFFLOAD_TAKES_NET 9 | #define udp_add_offload(net, prot) udp_add_offload(prot) 10 | #endif 11 | 12 | #else 13 | 14 | #define udp_add_offload(net, prot) 0 15 | #define udp_del_offload(prot) do {} while(0) 16 | 17 | #endif /* HAVE_UDP_OFFLOAD */ 18 | 19 | #endif /* _NET_PROTOCOL_WRAPPER_H */ 20 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/sctp/checksum.h: -------------------------------------------------------------------------------- 1 | #ifndef __SCTP_CHECKSUM_WRAPPER_H 2 | #define __SCTP_CHECKSUM_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef HAVE_SCTP_COMPUTE_CKSUM 7 | static inline __le32 sctp_compute_cksum(const struct sk_buff *skb, 8 | unsigned int offset) 9 | { 10 | const struct sk_buff *iter; 11 | 12 | __u32 crc32 = sctp_start_cksum(skb->data + offset, 13 | skb_headlen(skb) - offset); 14 | skb_walk_frags(skb, iter) 15 | crc32 = sctp_update_cksum((__u8 *) iter->data, 16 | skb_headlen(iter), crc32); 17 | 18 | /* Open-code sctp_end_cksum() to avoid a sparse warning due to a bug in 19 | * sparse annotations in Linux fixed in 3.10 in commit eee1d5a14 (sctp: 20 | * Correct type and usage of sctp_end_cksum()). */ 21 | return cpu_to_le32(~crc32); 22 | } 23 | #endif 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/sock.h: -------------------------------------------------------------------------------- 1 | #ifndef __NET_SOCK_WRAPPER_H 2 | #define __NET_SOCK_WRAPPER_H 1 3 | 4 | #include_next 5 | 6 | #ifndef __sk_user_data 7 | #define __sk_user_data(sk) ((*((void __rcu **)&(sk)->sk_user_data))) 8 | 9 | #define rcu_dereference_sk_user_data(sk) rcu_dereference(__sk_user_data((sk))) 10 | #define rcu_assign_sk_user_data(sk, ptr) rcu_assign_pointer(__sk_user_data((sk)), ptr) 11 | #endif 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /datapath/linux/compat/include/net/vrf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * include/net/net_vrf.h - adds vrf dev structure definitions 3 | * Copyright (c) 2015 Cumulus Networks 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | */ 10 | 11 | #ifndef __LINUX_NET_VRF_WRAPPER_H 12 | #define __LINUX_NET_VRF_WRAPPER_H 13 | 14 | #include 15 | 16 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) 17 | #include_next 18 | #else 19 | 20 | static inline int vrf_master_ifindex_rcu(const struct net_device *dev) 21 | { 22 | return 0; 23 | } 24 | #endif 25 | 26 | #endif /* __LINUX_NET_VRF_WRAPPER_H */ 27 | -------------------------------------------------------------------------------- /datapath/linux/compat/inet_fragment.c: -------------------------------------------------------------------------------- 1 | /* 2 | * inet fragments management 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License 6 | * as published by the Free Software Foundation; either version 7 | * 2 of the License, or (at your option) any later version. 8 | * 9 | * Authors: Pavel Emelyanov 10 | * Started as consolidation of ipv4/ip_fragment.c, 11 | * ipv6/reassembly. and ipv6 nf conntrack reassembly 12 | */ 13 | 14 | #ifndef HAVE_CORRECT_MRU_HANDLING 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | 31 | #endif /* !HAVE_CORRECT_MRU_HANDLING */ 32 | -------------------------------------------------------------------------------- /datapath/linux/compat/nf_conntrack_core.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef HAVE_NF_CT_ZONE_INIT 4 | 5 | #include 6 | 7 | /* Built-in default zone used e.g. by modules. */ 8 | const struct nf_conntrack_zone nf_ct_zone_dflt = { 9 | .id = NF_CT_DEFAULT_ZONE_ID, 10 | .dir = NF_CT_DEFAULT_ZONE_DIR, 11 | }; 12 | 13 | #endif /* HAVE_NF_CT_ZONE_INIT */ 14 | -------------------------------------------------------------------------------- /datapath/linux/compat/reciprocal_div.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | /* 7 | * For a description of the algorithm please have a look at 8 | * include/linux/reciprocal_div.h 9 | */ 10 | 11 | struct reciprocal_value rpl_reciprocal_value(u32 d) 12 | { 13 | struct reciprocal_value R; 14 | u64 m; 15 | int l; 16 | 17 | l = fls(d - 1); 18 | m = ((1ULL << 32) * ((1ULL << l) - d)); 19 | do_div(m, d); 20 | ++m; 21 | R.m = (u32)m; 22 | R.sh1 = min(l, 1); 23 | R.sh2 = max(l - 1, 0); 24 | 25 | return R; 26 | } 27 | EXPORT_SYMBOL_GPL(rpl_reciprocal_value); 28 | -------------------------------------------------------------------------------- /datapath/linux/compat/socket.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | 13 | #ifndef HAVE_SOCK_CREATE_KERN_NET 14 | #undef sock_create_kern 15 | 16 | int ovs_sock_create_kern(struct net *net, int family, int type, int protocol, struct socket **res) 17 | { 18 | int err; 19 | 20 | err = sock_create_kern(family, type, protocol, res); 21 | if (err < 0) 22 | return err; 23 | 24 | sk_change_net((*res)->sk, net); 25 | return err; 26 | } 27 | #undef sk_release_kernel 28 | void ovs_sock_release(struct socket *sock) 29 | { 30 | sk_release_kernel(sock->sk); 31 | } 32 | #endif 33 | -------------------------------------------------------------------------------- /datapath/vport-internal_dev.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2011 Nicira, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of version 2 of the GNU General Public 6 | * License as published by the Free Software Foundation. 7 | * 8 | * This program is distributed in the hope that it will be useful, but 9 | * WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | * General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program; if not, write to the Free Software 15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 16 | * 02110-1301, USA 17 | */ 18 | 19 | #ifndef VPORT_INTERNAL_DEV_H 20 | #define VPORT_INTERNAL_DEV_H 1 21 | 22 | #include "datapath.h" 23 | #include "vport.h" 24 | 25 | int ovs_is_internal_dev(const struct net_device *); 26 | struct vport *ovs_internal_dev_get_vport(struct net_device *); 27 | int ovs_internal_dev_rtnl_link_register(void); 28 | void ovs_internal_dev_rtnl_link_unregister(void); 29 | 30 | #endif /* vport-internal_dev.h */ 31 | -------------------------------------------------------------------------------- /debian/.gitignore: -------------------------------------------------------------------------------- 1 | *.debhelper 2 | *.debhelper.log 3 | *.substvars 4 | /autoreconf.after 5 | /autoreconf.before 6 | /control 7 | /copyright 8 | /files 9 | /libopenvswitch 10 | /libopenvswitch-dev 11 | /nicira-switch 12 | /openvswitch 13 | /openvswitch-common 14 | /openvswitch-common.copyright 15 | /openvswitch-datapath-source 16 | /openvswitch-datapath-dkms 17 | /openvswitch-dbg 18 | /openvswitch-ipsec 19 | /openvswitch-pki 20 | /openvswitch-switch 21 | /openvswitch-switch.copyright 22 | /openvswitch-test 23 | /openvswitch-testcontroller 24 | /openvswitch-vtep 25 | /ovn-common 26 | /ovn-controller-vtep 27 | /ovn-host 28 | /ovn-central 29 | /ovn-docker 30 | /python-openvswitch 31 | /tmp 32 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /debian/control.modules.in: -------------------------------------------------------------------------------- 1 | Source: openvswitch 2 | Section: net 3 | Priority: extra 4 | Maintainer: Open vSwitch developers 5 | Build-Depends: debhelper (>= 5.0.37) 6 | Standards-Version: 3.7.3 7 | 8 | Package: openvswitch-datapath-module-_KVERS_ 9 | Architecture: any 10 | Recommends: kernel-image-_KVERS_, openvswitch-switch 11 | Provides: openvswitch-datapath-module 12 | Description: Open vSwitch Linux datapath kernel module 13 | This package contains the Open vSwitch loadable datapath kernel modules for 14 | the kernel-image-_KVERS_ package. 15 | . 16 | If you compiled a custom kernel, you will most likely need to compile 17 | a custom version of this module as well. The 18 | openvswitch-datapath-source package has been provided for this 19 | purpose. Refer to README.Debian provided in that package for further 20 | instructions. 21 | -------------------------------------------------------------------------------- /debian/dirs: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/sbin 3 | -------------------------------------------------------------------------------- /debian/dkms.conf.in: -------------------------------------------------------------------------------- 1 | MODULES=( __MODULES__ ) 2 | 3 | PACKAGE_NAME="openvswitch" 4 | PACKAGE_VERSION="__VERSION__" 5 | MAKE="./configure --with-linux='${kernel_source_dir}' && make -C datapath/linux" 6 | for __idx in ${!MODULES[@]}; do 7 | BUILT_MODULE_NAME[__idx]=${MODULES[__idx]} 8 | BUILT_MODULE_LOCATION[__idx]=datapath/linux/ 9 | DEST_MODULE_LOCATION[__idx]=/kernel/drivers/net/openvswitch/ 10 | done 11 | AUTOINSTALL=yes 12 | -------------------------------------------------------------------------------- /debian/libopenvswitch-dev.install: -------------------------------------------------------------------------------- 1 | usr/lib/*/lib*.so 2 | usr/lib/*/lib*.a 3 | usr/lib/*/pkgconfig 4 | include/*.h usr/include/openvswitch 5 | include/openflow/*.h usr/include/openvswitch/openflow 6 | include/openvswitch/*.h usr/include/openvswitch/openvswitch 7 | include/sparse/*.h usr/include/openvswitch/sparse 8 | include/sparse/arpa/*.h usr/include/openvswitch/sparse/arpa 9 | include/sparse/netinet/*.h usr/include/openvswitch/sparse/netinet 10 | include/sparse/sys/*.h usr/include/openvswitch/sparse/sys 11 | lib/*.h usr/include/openvswitch/lib 12 | -------------------------------------------------------------------------------- /debian/libopenvswitch.install: -------------------------------------------------------------------------------- 1 | usr/lib/*/lib*.so.* 2 | -------------------------------------------------------------------------------- /debian/openvswitch-common.dirs: -------------------------------------------------------------------------------- 1 | var/log/openvswitch 2 | -------------------------------------------------------------------------------- /debian/openvswitch-common.docs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/debian/openvswitch-common.docs -------------------------------------------------------------------------------- /debian/openvswitch-common.install: -------------------------------------------------------------------------------- 1 | etc/bash_completion.d/ovs-appctl-bashcomp.bash 2 | usr/bin/ovs-appctl 3 | usr/bin/ovs-docker 4 | usr/bin/ovs-ofctl 5 | usr/bin/ovs-parse-backtrace 6 | usr/bin/ovs-pki 7 | usr/bin/ovsdb-client 8 | usr/sbin/ovs-bugtool 9 | usr/share/openvswitch/bugtool-plugins 10 | usr/share/openvswitch/scripts/ovs-bugtool-* 11 | usr/share/openvswitch/scripts/ovs-lib 12 | -------------------------------------------------------------------------------- /debian/openvswitch-common.manpages: -------------------------------------------------------------------------------- 1 | ovsdb/ovsdb-client.1 2 | ovsdb/ovsdb-tool.1 3 | utilities/bugtool/ovs-bugtool.8 4 | utilities/ovs-appctl.8 5 | utilities/ovs-ofctl.8 6 | utilities/ovs-parse-backtrace.8 7 | utilities/ovs-pki.8 8 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-dkms.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | package=openvswitch-datapath-dkms 6 | name=openvswitch 7 | 8 | version=`dpkg-query -W -f='${Version}' "$package" \ 9 | |rev|cut -d- -f2-|rev|cut -d':' -f2|tr -d "\n"` 10 | 11 | isadded=`dkms status -m "$name" -v "$version"` 12 | 13 | if [ "x${isadded}" = "x" ] ; then 14 | dkms add -m "$name" -v "$version" 15 | fi 16 | 17 | if [ "$1" = 'configure' ] ; then 18 | dkms build -m "$name" -v "$version" && dkms install -m "$name" -v "$version" || true 19 | fi 20 | 21 | #DEBHELPER# 22 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-dkms.prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | package=openvswitch-datapath-dkms 6 | name=openvswitch 7 | 8 | version=`dpkg-query -W -f='${Version}' "$package" \ 9 | |rev|cut -d- -f2-|rev|cut -d':' -f2|tr -d "\n"` 10 | 11 | dkms remove -m "$name" -v "$version" --all || true 12 | 13 | #DEBHELPER# 14 | 15 | exit 0 16 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for #PACKAGE# 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | #DEBHELPER# 9 | 10 | # If the kernel module is already loaded, we have nothing to do here. 11 | # A force-reload-kmod should be run manually to use the new kernel module. 12 | if [ -e /sys/module/openvswitch ]; then 13 | exit 0 14 | fi 15 | 16 | # If the kernel module is not loaded, then it is likely because none 17 | # was installed before and therefore Open vSwitch couldn't be started. 18 | # Try to start it now. 19 | # 20 | # (Ideally we'd only want to do this if this package corresponds to the 21 | # running kernel, but I don't know a reliable way to check.) 22 | INIT=/etc/init.d/openvswitch-switch 23 | if test -x $INIT; then 24 | $INIT start || true 25 | fi 26 | 27 | exit 0 28 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-source.README.Debian: -------------------------------------------------------------------------------- 1 | Open vSwitch for Debian 2 | ---------------------- 3 | 4 | * How do I build this module the Debian way? 5 | 6 | - Building with module-assistant: 7 | 8 | $ module-assistant auto-install openvswitch-datapath 9 | or 10 | $ m-a a-i openvswitch-datapath 11 | 12 | If kernel source or headers are in a non-standard directory, add 13 | the option -k /path/to/kernel/source with the correct path. 14 | 15 | - Building with make-kpkg 16 | 17 | $ cd /usr/src/ 18 | $ tar jxvf openvswitch.tar.bz2 19 | $ cd /usr/src/kernel-source-2.6.26 20 | $ make-kpkg --added-modules=openvswitch modules 21 | 22 | - Building without make-kpkg 23 | 24 | $ cd /usr/src/ 25 | $ tar jxvf openvswitch.tar.bz2 26 | $ cd modules/openvswitch 27 | $ fakeroot debian/rules kdist_image 28 | 29 | If you run this as root, fakeroot is not needed. 30 | 31 | -- Ben Pfaff , Wed, 22 Jun 2011 09:51:28 -0700 32 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-source.copyright: -------------------------------------------------------------------------------- 1 | Upstream Authors: 2 | 3 | Nicira, Inc. 4 | 5 | Copyright: 6 | 7 | Copyright (C) 2008 Nicira, Inc. 8 | 9 | License: 10 | 11 | Files in the datapath/ and its sub-directories are covered under the GNU 12 | General Public License Version 2. 13 | 14 | On Debian systems, the complete text of the GNU General 15 | Public License can be found in `/usr/share/common-licenses/GPL'. 16 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-source.dirs: -------------------------------------------------------------------------------- 1 | usr/src/modules/openvswitch-datapath/debian 2 | -------------------------------------------------------------------------------- /debian/openvswitch-datapath-source.install: -------------------------------------------------------------------------------- 1 | debian/*.modules.in usr/src/modules/openvswitch-datapath/debian 2 | debian/changelog usr/src/modules/openvswitch-datapath/debian 3 | debian/compat usr/src/modules/openvswitch-datapath/debian 4 | debian/control usr/src/modules/openvswitch-datapath/debian 5 | openvswitch.tar.gz usr/src/modules/openvswitch-datapath 6 | -------------------------------------------------------------------------------- /debian/openvswitch-pki.dirs: -------------------------------------------------------------------------------- 1 | /var/lib/openvswitch 2 | -------------------------------------------------------------------------------- /debian/openvswitch-pki.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for openvswitch-pki 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | case "$1" in 21 | configure) 22 | # Create certificate authorities. 23 | if test ! -e /var/lib/openvswitch/pki; then 24 | ovs-pki init 25 | fi 26 | ;; 27 | 28 | abort-upgrade|abort-remove|abort-deconfigure) 29 | ;; 30 | 31 | *) 32 | echo "postinst called with unknown argument \`$1'" >&2 33 | exit 1 34 | ;; 35 | esac 36 | 37 | #DEBHELPER# 38 | 39 | exit 0 40 | 41 | 42 | -------------------------------------------------------------------------------- /debian/openvswitch-switch.dirs: -------------------------------------------------------------------------------- 1 | /etc/openvswitch 2 | /usr/share/openvswitch/switch 3 | -------------------------------------------------------------------------------- /debian/openvswitch-switch.install: -------------------------------------------------------------------------------- 1 | debian/ifupdown.sh usr/share/openvswitch/scripts 2 | etc/bash_completion.d/ovs-vsctl-bashcomp.bash 3 | usr/bin/ovs-dpctl 4 | usr/bin/ovs-dpctl-top 5 | usr/bin/ovs-pcap 6 | usr/bin/ovs-tcpdump 7 | usr/bin/ovs-tcpundump 8 | usr/bin/ovs-vlan-test 9 | usr/bin/ovs-vsctl 10 | usr/bin/ovsdb-tool 11 | usr/sbin/ovs-vswitchd 12 | usr/sbin/ovsdb-server 13 | usr/share/openvswitch/scripts/ovs-check-dead-ifs 14 | usr/share/openvswitch/scripts/ovs-ctl 15 | usr/share/openvswitch/scripts/ovs-save 16 | usr/share/openvswitch/vswitch.ovsschema 17 | -------------------------------------------------------------------------------- /debian/openvswitch-switch.links: -------------------------------------------------------------------------------- 1 | usr/share/openvswitch/scripts/ifupdown.sh etc/network/if-post-down.d/openvswitch 2 | usr/share/openvswitch/scripts/ifupdown.sh etc/network/if-pre-up.d/openvswitch 3 | -------------------------------------------------------------------------------- /debian/openvswitch-switch.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/openvswitch/*.log { 2 | daily 3 | compress 4 | sharedscripts 5 | create 640 root adm 6 | missingok 7 | rotate 30 8 | postrotate 9 | # Tell Open vSwitch daemons to reopen their log files 10 | if [ -d /var/run/openvswitch ]; then 11 | for ctl in /var/run/openvswitch/*.ctl; do 12 | ovs-appctl -t "$ctl" vlog/reopen 2>/dev/null || : 13 | done 14 | fi 15 | endscript 16 | } 17 | -------------------------------------------------------------------------------- /debian/openvswitch-switch.manpages: -------------------------------------------------------------------------------- 1 | ovsdb/ovsdb-server.1 2 | ovsdb/ovsdb-server.5 3 | utilities/ovs-ctl.8 4 | utilities/ovs-dpctl-top.8 5 | utilities/ovs-dpctl.8 6 | utilities/ovs-pcap.1 7 | utilities/ovs-tcpdump.8 8 | utilities/ovs-tcpundump.1 9 | utilities/ovs-vsctl.8 10 | vswitchd/ovs-vswitchd.8 11 | vswitchd/ovs-vswitchd.conf.db.5 12 | -------------------------------------------------------------------------------- /debian/openvswitch-switch.template: -------------------------------------------------------------------------------- 1 | # This is a POSIX shell fragment -*- sh -*- 2 | 3 | # FORCE_COREFILES: If 'yes' then core files will be enabled. 4 | # FORCE_COREFILES=yes 5 | 6 | # OVS_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example, 7 | # a suitable place to specify --ovs-vswitchd-wrapper=valgrind. 8 | # OVS_CTL_OPTS= 9 | -------------------------------------------------------------------------------- /debian/openvswitch-test.dirs: -------------------------------------------------------------------------------- 1 | usr/share/pyshared/ovstest/ 2 | -------------------------------------------------------------------------------- /debian/openvswitch-test.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovs-l3ping 2 | usr/bin/ovs-test 3 | usr/share/openvswitch/python/ovstest usr/lib/python2.7/dist-packages/ 4 | -------------------------------------------------------------------------------- /debian/openvswitch-test.manpages: -------------------------------------------------------------------------------- 1 | utilities/ovs-l3ping.8 2 | -------------------------------------------------------------------------------- /debian/openvswitch-testcontroller.README.Debian: -------------------------------------------------------------------------------- 1 | README.Debian for openvswitch-testcontroller 2 | -------------------------------------------- 3 | 4 | The controller in this package enables OpenFlow switches that connect 5 | to it to act as MAC-learning Ethernet switches. It can be used for 6 | initial testing of OpenFlow networks. It is not a necessary or 7 | desirable part of a production OpenFlow deployment. 8 | 9 | To (re)configure the controller, edit /etc/default/openvswitch-testcontroller 10 | and run "/etc/init.d/openvswitch-testcontroller restart". 11 | 12 | -- Ben Pfaff , Thu, 14 Aug 2014 10:49:34 -0700 13 | -------------------------------------------------------------------------------- /debian/openvswitch-testcontroller.default: -------------------------------------------------------------------------------- 1 | # This is a POSIX shell fragment -*- sh -*- 2 | 3 | # LISTEN: What OpenFlow connection methods should the controller listen on? 4 | # 5 | # This is a space-delimited list of connection methods: 6 | # 7 | # * "pssl:[PORT]": Listen for SSL connections on the specified PORT 8 | # (default: 6653). The private key, certificate, and CA certificate 9 | # must be specified below. 10 | # 11 | # * "ptcp:[PORT]": Listen for TCP connections on the specified PORT 12 | # (default: 6653). Not recommended for security reasons. 13 | # 14 | LISTEN="pssl:" 15 | 16 | # PRIVKEY: Name of file containing controller's private key. 17 | # Required if SSL enabled. 18 | PRIVKEY=/etc/openvswitch-testcontroller/privkey.pem 19 | 20 | # CERT: Name of file containing certificate for private key. 21 | # Required if SSL enabled. 22 | CERT=/etc/openvswitch-testcontroller/cert.pem 23 | 24 | # CACERT: Name of file containing switch CA certificate. 25 | # Required if SSL enabled. 26 | CACERT=/etc/openvswitch-testcontroller/cacert.pem 27 | 28 | # Additional options to pass to ovs-testcontroller, e.g. "--hub" 29 | DAEMON_OPTS="" 30 | -------------------------------------------------------------------------------- /debian/openvswitch-testcontroller.dirs: -------------------------------------------------------------------------------- 1 | etc/openvswitch-testcontroller 2 | -------------------------------------------------------------------------------- /debian/openvswitch-testcontroller.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovs-testcontroller 2 | -------------------------------------------------------------------------------- /debian/openvswitch-testcontroller.manpages: -------------------------------------------------------------------------------- 1 | utilities/ovs-testcontroller.8 2 | -------------------------------------------------------------------------------- /debian/openvswitch-vtep.default: -------------------------------------------------------------------------------- 1 | # This is a POSIX shell fragment -*- sh -*- 2 | 3 | # ENABLE_OVS_VTEP: Whether to start ovs-vtep. 4 | ENABLE_OVS_VTEP="false" 5 | -------------------------------------------------------------------------------- /debian/openvswitch-vtep.dirs: -------------------------------------------------------------------------------- 1 | /usr/share/openvswitch 2 | -------------------------------------------------------------------------------- /debian/openvswitch-vtep.install: -------------------------------------------------------------------------------- 1 | usr/share/openvswitch/scripts/ovs-vtep 2 | usr/share/openvswitch/vtep.ovsschema 3 | vtep/vtep-ctl usr/bin 4 | -------------------------------------------------------------------------------- /debian/openvswitch-vtep.manpages: -------------------------------------------------------------------------------- 1 | vtep/vtep-ctl.8 2 | -------------------------------------------------------------------------------- /debian/ovn-central.dirs: -------------------------------------------------------------------------------- 1 | /usr/share/ovn/central 2 | -------------------------------------------------------------------------------- /debian/ovn-central.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovn-northd 2 | usr/share/openvswitch/ovn-nb.ovsschema 3 | usr/share/openvswitch/ovn-sb.ovsschema 4 | -------------------------------------------------------------------------------- /debian/ovn-central.manpages: -------------------------------------------------------------------------------- 1 | ovn/northd/ovn-northd.8 2 | -------------------------------------------------------------------------------- /debian/ovn-central.template: -------------------------------------------------------------------------------- 1 | # This is a POSIX shell fragment -*- sh -*- 2 | 3 | # OVN_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example, 4 | # a suitable place to specify --ovn-northd-wrapper=valgrind. 5 | # OVN_CTL_OPTS= 6 | -------------------------------------------------------------------------------- /debian/ovn-common.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovn-nbctl 2 | usr/bin/ovn-sbctl 3 | usr/bin/ovn-trace 4 | usr/share/openvswitch/scripts/ovn-ctl 5 | usr/share/openvswitch/scripts/ovndb-servers.ocf 6 | -------------------------------------------------------------------------------- /debian/ovn-common.manpages: -------------------------------------------------------------------------------- 1 | ovn/ovn-architecture.7 2 | ovn/ovn-nb.5 3 | ovn/ovn-sb.5 4 | ovn/utilities/ovn-ctl.8 5 | ovn/utilities/ovn-nbctl.8 6 | ovn/utilities/ovn-sbctl.8 7 | ovn/utilities/ovn-trace.8 8 | -------------------------------------------------------------------------------- /debian/ovn-common.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for ovn-common 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | case "$1" in 9 | configure) 10 | mkdir -p /usr/lib/ocf/resource.d/ovn 11 | ln -sf /usr/share/openvswitch/scripts/ovndb-servers.ocf /usr/lib/ocf/resource.d/ovn/ovndb-servers 12 | ;; 13 | abort-upgrade|abort-remove|abort-deconfigure) 14 | ;; 15 | 16 | *) 17 | echo "postinst called with unknown argument \`$1'" >&2 18 | exit 1 19 | ;; 20 | esac 21 | 22 | #DEBHELPER# 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /debian/ovn-common.postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for openvswitch-testcontroller 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | case "$1" in 9 | purge|remove) 10 | rm -rf /usr/lib/ocf/resource.d/ovn 11 | ;; 12 | upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 13 | ;; 14 | 15 | *) 16 | echo "postrm called with unknown argument \`$1'" >&2 17 | exit 1 18 | ;; 19 | esac 20 | 21 | #DEBHELPER# 22 | 23 | exit 0 24 | -------------------------------------------------------------------------------- /debian/ovn-controller-vtep.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovn-controller-vtep 2 | -------------------------------------------------------------------------------- /debian/ovn-controller-vtep.manpages: -------------------------------------------------------------------------------- 1 | ovn/controller-vtep/ovn-controller-vtep.8 2 | -------------------------------------------------------------------------------- /debian/ovn-docker.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovn-docker-overlay-driver 2 | usr/bin/ovn-docker-underlay-driver 3 | -------------------------------------------------------------------------------- /debian/ovn-host.dirs: -------------------------------------------------------------------------------- 1 | /usr/share/ovn/host 2 | -------------------------------------------------------------------------------- /debian/ovn-host.install: -------------------------------------------------------------------------------- 1 | usr/bin/ovn-controller 2 | -------------------------------------------------------------------------------- /debian/ovn-host.manpages: -------------------------------------------------------------------------------- 1 | ovn/controller/ovn-controller.8 2 | -------------------------------------------------------------------------------- /debian/ovn-host.template: -------------------------------------------------------------------------------- 1 | # This is a POSIX shell fragment -*- sh -*- 2 | 3 | # OVN_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example, 4 | # a suitable place to specify --ovn-controller-wrapper=valgrind. 5 | # OVN_CTL_OPTS= 6 | -------------------------------------------------------------------------------- /debian/python-openvswitch.dirs: -------------------------------------------------------------------------------- 1 | usr/share/pyshared/ovs/ 2 | usr/share/pyshared/ovs/db/ 3 | -------------------------------------------------------------------------------- /debian/python-openvswitch.install: -------------------------------------------------------------------------------- 1 | usr/share/openvswitch/python/ovs usr/lib/python2.7/dist-packages/ 2 | -------------------------------------------------------------------------------- /debian/rules.modules: -------------------------------------------------------------------------------- 1 | #! /usr/bin/make -f 2 | 3 | PACKAGE=openvswitch-datapath-module 4 | MA_DIR ?= /usr/share/modass 5 | -include $(MA_DIR)/include/generic.make 6 | -include $(MA_DIR)/include/common-rules.make 7 | 8 | DATAPATH_CONFIGURE_OPTS = 9 | 10 | kdist_clean: 11 | dh_testdir 12 | dh_testroot 13 | dh_clean 14 | rm -rf openvswitch 15 | 16 | .PHONY: kdist_config 17 | kdist_config: prep-deb-files 18 | 19 | .PHONY: binary-modules 20 | binary-modules: DSTDIR = $(CURDIR)/debian/$(PKGNAME)/lib/modules/$(KVERS)/updates 21 | binary-modules: prep-deb-files 22 | dh_testdir 23 | dh_testroot 24 | dh_clean -k 25 | tar xzf openvswitch.tar.gz 26 | cd openvswitch && ./configure --with-linux=$(KSRC) $(DATAPATH_CONFIGURE_OPTS) 27 | cd openvswitch && $(MAKE) -C datapath/linux 28 | install -d -m755 $(DSTDIR) 29 | install -m644 openvswitch/datapath/linux/*.ko $(DSTDIR)/ 30 | dh_installmodules 31 | dh_installdocs 32 | dh_installchangelogs 33 | dh_compress 34 | dh_fixperms 35 | dh_installdeb 36 | dh_gencontrol 37 | dh_md5sums 38 | dh_builddeb --destdir=$(DEB_DESTDIR) 39 | 40 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /include/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | -------------------------------------------------------------------------------- /include/automake.mk: -------------------------------------------------------------------------------- 1 | BUILT_SOURCES += include/odp-netlink.h 2 | 3 | include/odp-netlink.h: datapath/linux/compat/include/linux/openvswitch.h \ 4 | build-aux/extract-odp-netlink-h 5 | $(AM_V_GEN)sed -f $(srcdir)/build-aux/extract-odp-netlink-h < $< > $@ 6 | EXTRA_DIST += build-aux/extract-odp-netlink-h 7 | CLEANFILES += include/odp-netlink.h 8 | 9 | include include/ovn/automake.mk 10 | include include/openflow/automake.mk 11 | include include/openvswitch/automake.mk 12 | include include/sparse/automake.mk 13 | include include/windows/automake.mk 14 | include include/linux/automake.mk 15 | -------------------------------------------------------------------------------- /include/linux/automake.mk: -------------------------------------------------------------------------------- 1 | noinst_HEADERS += \ 2 | include/linux/pkt_cls.h \ 3 | include/linux/tc_act/tc_pedit.h \ 4 | include/linux/tc_act/tc_tunnel_key.h \ 5 | include/linux/tc_act/tc_vlan.h 6 | -------------------------------------------------------------------------------- /include/linux/tc_act/tc_vlan.h: -------------------------------------------------------------------------------- 1 | #ifndef __LINUX_TC_ACT_TC_VLAN_WRAPPER_H 2 | #define __LINUX_TC_ACT_TC_VLAN_WRAPPER_H 1 3 | 4 | #if defined(__KERNEL__) || defined(HAVE_TCA_VLAN_PUSH_VLAN_PRIORITY) 5 | #include_next 6 | #else 7 | 8 | /* 9 | * Copyright (c) 2014 Jiri Pirko 10 | * 11 | * This program is free software; you can redistribute it and/or modify 12 | * it under the terms of the GNU General Public License as published by 13 | * the Free Software Foundation; either version 2 of the License, or 14 | * (at your option) any later version. 15 | */ 16 | 17 | #define TCA_VLAN_ACT_POP 1 18 | #define TCA_VLAN_ACT_PUSH 2 19 | #define TCA_VLAN_ACT_MODIFY 3 20 | 21 | struct tc_vlan { 22 | tc_gen; 23 | int v_action; 24 | }; 25 | 26 | enum { 27 | TCA_VLAN_UNSPEC, 28 | TCA_VLAN_TM, 29 | TCA_VLAN_PARMS, 30 | TCA_VLAN_PUSH_VLAN_ID, 31 | TCA_VLAN_PUSH_VLAN_PROTOCOL, 32 | TCA_VLAN_PAD, 33 | TCA_VLAN_PUSH_VLAN_PRIORITY, 34 | __TCA_VLAN_MAX, 35 | }; 36 | #define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1) 37 | 38 | #endif /* __KERNEL__ || HAVE_TCA_VLAN_PUSH_VLAN_PRIORITY */ 39 | 40 | #endif /* __LINUX_TC_ACT_TC_VLAN_WRAPPER_H */ 41 | -------------------------------------------------------------------------------- /include/openflow/.gitignore: -------------------------------------------------------------------------------- 1 | *.hstamp 2 | -------------------------------------------------------------------------------- /include/openflow/automake.mk: -------------------------------------------------------------------------------- 1 | openflowincludedir = $(includedir)/openflow 2 | openflowinclude_HEADERS = \ 3 | include/openflow/intel-ext.h \ 4 | include/openflow/netronome-ext.h \ 5 | include/openflow/nicira-ext.h \ 6 | include/openflow/openflow-1.0.h \ 7 | include/openflow/openflow-1.1.h \ 8 | include/openflow/openflow-1.2.h \ 9 | include/openflow/openflow-1.3.h \ 10 | include/openflow/openflow-1.4.h \ 11 | include/openflow/openflow-1.5.h \ 12 | include/openflow/openflow-1.6.h \ 13 | include/openflow/openflow-common.h \ 14 | include/openflow/openflow.h 15 | 16 | if HAVE_PYTHON 17 | SUFFIXES += .h .hstamp 18 | 19 | .h.hstamp: 20 | $(AM_V_GEN)$(run_python) $(srcdir)/build-aux/check-structs -I$(srcdir)/include $< && \ 21 | touch $@ 22 | 23 | HSTAMP_FILES = $(openflowinclude_HEADERS:.h=.hstamp) 24 | CLEANFILES += $(HSTAMP_FILES) 25 | ALL_LOCAL += $(HSTAMP_FILES) 26 | $(HSTAMP_FILES): build-aux/check-structs $(openflowinclude_HEADERS) 27 | endif 28 | 29 | EXTRA_DIST += build-aux/check-structs 30 | 31 | -------------------------------------------------------------------------------- /include/openflow/openflow.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2017 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef OPENFLOW_OPENFLOW_H 18 | #define OPENFLOW_OPENFLOW_H 1 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | #endif /* openflow/openflow.h */ 29 | -------------------------------------------------------------------------------- /include/openvswitch/.gitignore: -------------------------------------------------------------------------------- 1 | /version.h 2 | /cxxtest.cc 3 | -------------------------------------------------------------------------------- /include/openvswitch/version.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Nicira, Inc. 3 | * Copyright (c) 2014 Cisco Systems, Inc. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at: 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | #ifndef OPENVSWITCH_VERSION_H 19 | #define OPENVSWITCH_VERSION_H 1 20 | 21 | #define OVS_PACKAGE_STRING "@PACKAGE_STRING@" 22 | #define OVS_PACKAGE_VERSION "@PACKAGE_VERSION@" 23 | 24 | #define OVS_LIB_VERSION @LT_CURRENT@ 25 | #define OVS_LIB_REVISION @LT_REVISION@ 26 | #define OVS_LIB_AGE @LT_AGE@ 27 | 28 | #endif /* openvswitch/version.h */ 29 | -------------------------------------------------------------------------------- /include/ovn/automake.mk: -------------------------------------------------------------------------------- 1 | ovnincludedir = $(includedir)/ovn 2 | ovninclude_HEADERS = \ 3 | include/ovn/actions.h \ 4 | include/ovn/expr.h \ 5 | include/ovn/lex.h 6 | -------------------------------------------------------------------------------- /include/sparse/arpa/inet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CHECKER__ 18 | #error "Use this header only with sparse. It is not a correct implementation." 19 | #endif 20 | 21 | #ifndef NETINET_IN_H_INCLUDED 22 | #error "Must include before for FreeBSD support" 23 | #endif 24 | 25 | #include 26 | -------------------------------------------------------------------------------- /include/sparse/assert.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CHECKER__ 18 | #error "Use this header only with sparse. It is not a correct implementation." 19 | #endif 20 | 21 | extern void __ovs_assert(_Bool); 22 | #define assert(EXPRESSION) __ovs_assert(EXPRESSION) 23 | -------------------------------------------------------------------------------- /include/sparse/automake.mk: -------------------------------------------------------------------------------- 1 | noinst_HEADERS += \ 2 | include/sparse/arpa/inet.h \ 3 | include/sparse/bits/floatn.h \ 4 | include/sparse/assert.h \ 5 | include/sparse/bmi2intrin.h \ 6 | include/sparse/emmintrin.h \ 7 | include/sparse/math.h \ 8 | include/sparse/netinet/in.h \ 9 | include/sparse/netinet/ip6.h \ 10 | include/sparse/netpacket/packet.h \ 11 | include/sparse/pthread.h \ 12 | include/sparse/rte_atomic.h \ 13 | include/sparse/rte_lcore.h \ 14 | include/sparse/rte_memcpy.h \ 15 | include/sparse/rte_vect.h \ 16 | include/sparse/sys/socket.h \ 17 | include/sparse/sys/sysmacros.h \ 18 | include/sparse/sys/types.h \ 19 | include/sparse/sys/wait.h 20 | -------------------------------------------------------------------------------- /include/sparse/bits/floatn.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CHECKER__ 18 | #error "Use this header only with sparse. It is not a correct implementation." 19 | #endif 20 | 21 | #ifndef __BITS_FLOATN_SPARSE 22 | #define __BITS_FLOATN_SPARSE 1 23 | 24 | /* "sparse" claims to be a recent version of GCC but doesn't support IEEE 754 25 | * binary128, so we define macros to make that clear. */ 26 | 27 | #define __HAVE_FLOAT128 0 28 | #define __HAVE_FLOAT64X 0 29 | 30 | #include 31 | 32 | #endif /* for sparse */ 33 | -------------------------------------------------------------------------------- /include/sparse/bmi2intrin.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef __CHECKER__ 17 | #error "Use this header only with sparse. It is not a correct implementation." 18 | #endif 19 | 20 | /* Sparse doesn't know the __int128 type used by GCC 4.9 *intrin.h headers. 21 | * We cannot use a typedef because the type is used with a qualifier 22 | * ('unsigned __int128') */ 23 | #define __int128 int 24 | #include_next 25 | #undef __int128 26 | -------------------------------------------------------------------------------- /include/sparse/emmintrin.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef __CHECKER__ 17 | #error "Use this header only with sparse. It is not a correct implementation." 18 | #endif 19 | 20 | /* GCC 4.8 *intrin.h headers do not work if these are not defined */ 21 | #define __SSE2__ 22 | #define __SSE__ 23 | #define __MMX__ 24 | #include_next 25 | #undef __MMX__ 26 | #undef __SSE__ 27 | #undef __SSE2__ 28 | -------------------------------------------------------------------------------- /include/sparse/rte_atomic.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef __CHECKER__ 17 | #error "Use this header only with sparse. It is not a correct implementation." 18 | #endif 19 | 20 | /* Fix sparse technicality about types in one of the function calls by just 21 | * ignoring it. */ 22 | #define __sync_add_and_fetch(a, b) (0) 23 | 24 | /* Get actual definitions for us to annotate and build on. */ 25 | #include_next 26 | -------------------------------------------------------------------------------- /include/sparse/rte_lcore.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef __CHECKER__ 17 | #error "Use this header only with sparse. It is not a correct implementation." 18 | #endif 19 | 20 | typedef int rte_cpuset_t; 21 | 22 | /* Get actual definitions for us to annotate and build on. */ 23 | #include_next 24 | -------------------------------------------------------------------------------- /include/sparse/rte_vect.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef __CHECKER__ 17 | #error "Use this header only with sparse. It is not a correct implementation." 18 | #endif 19 | 20 | typedef int __m128i; 21 | 22 | /* Get actual definitions for us to annotate and build on. */ 23 | #include_next 24 | -------------------------------------------------------------------------------- /include/sparse/sys/types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011, 2013, 2014, 2015, 2017 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CHECKER__ 18 | #error "Use this header only with sparse. It is not a correct implementation." 19 | #endif 20 | 21 | #define SYS_TYPES_H_INCLUDED 1 22 | #include_next 23 | -------------------------------------------------------------------------------- /include/sparse/sys/wait.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CHECKER__ 18 | #error "Use this header only with sparse. It is not a correct implementation." 19 | #endif 20 | 21 | #ifndef __SYS_WAIT_SPARSE 22 | #define __SYS_WAIT_SPARSE 1 23 | 24 | #include_next 25 | 26 | #undef wait 27 | #define wait(a) rpl_wait(a) 28 | pid_t rpl_wait(int *); 29 | 30 | #undef waitpid 31 | #define waitpid(a, b, c) rpl_waitpid(a, b, c) 32 | pid_t rpl_waitpid(pid_t, int *, int); 33 | 34 | #endif /* for sparse */ 35 | -------------------------------------------------------------------------------- /include/windows/arpa/inet.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/arpa/inet.h -------------------------------------------------------------------------------- /include/windows/dirent.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/dirent.h -------------------------------------------------------------------------------- /include/windows/linux/netfilter/nf_conntrack_common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/netfilter/nf_conntrack_common.h -------------------------------------------------------------------------------- /include/windows/linux/netfilter/nf_conntrack_ftp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/netfilter/nf_conntrack_ftp.h -------------------------------------------------------------------------------- /include/windows/linux/netfilter/nf_conntrack_sctp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/netfilter/nf_conntrack_sctp.h -------------------------------------------------------------------------------- /include/windows/linux/netfilter/nf_conntrack_tcp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/netfilter/nf_conntrack_tcp.h -------------------------------------------------------------------------------- /include/windows/linux/netfilter/nfnetlink.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/netfilter/nfnetlink.h -------------------------------------------------------------------------------- /include/windows/linux/netfilter/nfnetlink_conntrack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/netfilter/nfnetlink_conntrack.h -------------------------------------------------------------------------------- /include/windows/linux/pkt_sched.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Cloudbase Solutions Srl 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __LINUX_PKT_SCHED_H 18 | #define __LINUX_PKT_SCHED_H 1 19 | 20 | #define TC_H_MAJ_MASK (0xFFFF0000U) 21 | 22 | #define TC_H_MIN_MASK (0x0000FFFFU) 23 | 24 | #define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK)) 25 | 26 | #endif /* linux/pkt_sched.h */ 27 | -------------------------------------------------------------------------------- /include/windows/linux/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/linux/types.h -------------------------------------------------------------------------------- /include/windows/netdb.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/netdb.h -------------------------------------------------------------------------------- /include/windows/netinet/in.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __NETINET_IN_H 18 | #define __NETINET_IN_H 1 19 | 20 | #define IPPROTO_GRE 47 21 | #define IPPORT_FTP 21 22 | 23 | #endif /* netinet/in.h */ 24 | -------------------------------------------------------------------------------- /include/windows/netinet/in_systm.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/netinet/in_systm.h -------------------------------------------------------------------------------- /include/windows/netinet/ip.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __NETINET_IP_H 18 | #define __NETINET_IP_H 1 19 | 20 | #define IPTOS_PREC_INTERNETCONTROL 0xc0 21 | #define MAXTTL 255 22 | #define IPTOS_LOWDELAY 0x10 23 | #define IPTOS_THROUGHPUT 0x08 24 | #define IP_DF 0x4000 /* dont fragment flag */ 25 | 26 | #endif /* netinet/ip.h */ 27 | -------------------------------------------------------------------------------- /include/windows/netinet/tcp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/netinet/tcp.h -------------------------------------------------------------------------------- /include/windows/netpacket/packet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Cloudbase Solutions Srl 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __NETPACKET_PACKET_H 18 | #define __NETPACKET_PACKET_H 1 19 | 20 | struct iovec 21 | { 22 | void *iov_base; 23 | unsigned int iov_len; 24 | }; 25 | 26 | struct msghdr 27 | { 28 | void *msg_name; 29 | socklen_t msg_namelen; 30 | 31 | struct iovec *msg_iov; 32 | size_t msg_iovlen; 33 | 34 | void *msg_control; 35 | size_t msg_controllen; 36 | 37 | int msg_flags; 38 | }; 39 | 40 | #endif /* netpacket/packet.h */ 41 | -------------------------------------------------------------------------------- /include/windows/poll.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/poll.h -------------------------------------------------------------------------------- /include/windows/strings.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/strings.h -------------------------------------------------------------------------------- /include/windows/sys/epoll.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Cloudbase Solutions Srl 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __SYS_EPOLL_H 18 | #define __SYS_EPOLL_H 1 19 | 20 | #define EPOLLIN 0x00001 21 | 22 | typedef union data { 23 | uint32_t u32; 24 | } data_t; 25 | 26 | struct epoll_event { 27 | uint32_t events; 28 | data_t data; 29 | }; 30 | 31 | #endif /* sys/epoll.h */ 32 | -------------------------------------------------------------------------------- /include/windows/sys/ioctl.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/sys/ioctl.h -------------------------------------------------------------------------------- /include/windows/sys/socket.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __SYS_SOCKET_H 18 | #define __SYS_SOCKET_H 1 19 | 20 | typedef unsigned short int sa_family_t; 21 | 22 | #endif /* sys/socket.h */ 23 | -------------------------------------------------------------------------------- /include/windows/sys/time.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/sys/time.h -------------------------------------------------------------------------------- /include/windows/sys/uio.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Cloudbase Solutions Srl 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __SYS_UIO_H 18 | #define __SYS_UIO_H 1 19 | 20 | #include 21 | 22 | #endif /* sys/uio.h */ 23 | -------------------------------------------------------------------------------- /include/windows/sys/un.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/sys/un.h -------------------------------------------------------------------------------- /include/windows/sys/wait.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/include/windows/sys/wait.h -------------------------------------------------------------------------------- /lib/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /dhparams.c 4 | /dirs.c 5 | /coverage-counters.c 6 | /meta-flow.inc 7 | /nx-match.inc 8 | /ofp-actions.inc1 9 | /ofp-actions.inc2 10 | /ofp-errors.inc 11 | /ofp-msgs.inc 12 | /ovsdb-server-idl.c 13 | /ovsdb-server-idl.h 14 | /ovsdb-server-idl.ovsidl 15 | /ovs-fields.7 16 | /stdio.h 17 | /string.h 18 | /vswitch-idl.c 19 | /vswitch-idl.h 20 | /vswitch-idl.ovsidl 21 | /libopenvswitch.pc 22 | /libsflow.pc 23 | -------------------------------------------------------------------------------- /lib/common-syn.man: -------------------------------------------------------------------------------- 1 | .IP "Common options:" 2 | [\fB\-h\fR | \fB\-\-help\fR] 3 | [\fB\-V\fR | \fB\-\-version\fR] 4 | 5 | -------------------------------------------------------------------------------- /lib/common.man: -------------------------------------------------------------------------------- 1 | .de IQ 2 | . br 3 | . ns 4 | . IP "\\$1" 5 | .. 6 | .IP "\fB\-h\fR" 7 | .IQ "\fB\-\-help\fR" 8 | Prints a brief help message to the console. 9 | . 10 | .IP "\fB\-V\fR" 11 | .IQ "\fB\-\-version\fR" 12 | Prints version information to the console. 13 | -------------------------------------------------------------------------------- /lib/common.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
-h
4 |
--help
5 |
6 | Prints a brief help message to the console. 7 |
8 | 9 |
-V
10 |
--version
11 |
12 | Prints version information to the console. 13 |
14 |
15 | -------------------------------------------------------------------------------- /lib/connectivity.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef CONNECTIVITY_H 18 | #define CONNECTIVITY_H 1 19 | 20 | #include 21 | 22 | /* For tracking connectivity changes globally. */ 23 | struct seq *connectivity_seq_get(void); 24 | 25 | #endif /* connectivity.h */ 26 | -------------------------------------------------------------------------------- /lib/coverage-unixctl.man: -------------------------------------------------------------------------------- 1 | .SS "COVERAGE COMMANDS" 2 | These commands manage \fB\*(PN\fR's ``coverage counters,'' which count 3 | the number of times particular events occur during a daemon's runtime. 4 | In addition to these commands, \fB\*(PN\fR automatically logs coverage 5 | counter values, at \fBINFO\fR level, when it detects that the daemon's 6 | main loop takes unusually long to run. 7 | .PP 8 | Coverage counters are useful mainly for performance analysis and 9 | debugging. 10 | .IP "\fBcoverage/show\fR" 11 | Displays the averaged per-second rates for the last few seconds, the 12 | last minute and the last hour, and the total counts of all of the 13 | coverage counters. 14 | -------------------------------------------------------------------------------- /lib/crc32c.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The University of Waikato. 3 | * Author: Joe Stringer 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at: 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | #ifndef CRC32C_H 19 | #define CRC32C_H 1 20 | 21 | #include "openvswitch/types.h" 22 | 23 | ovs_be32 crc32c(const uint8_t *data, size_t); 24 | 25 | #endif /* crc32c.h */ 26 | -------------------------------------------------------------------------------- /lib/daemon-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef DAEMON_PRIVATE_H 18 | #define DAEMON_PRIVATE_H 1 19 | 20 | extern bool detach; 21 | extern char *pidfile; 22 | 23 | char *make_pidfile_name(const char *name); 24 | 25 | #endif /* daemon-private.h */ 26 | -------------------------------------------------------------------------------- /lib/daemon-syn.man: -------------------------------------------------------------------------------- 1 | .IP "Daemon options:" 2 | [\fB\-\-pidfile\fR[\fB=\fIpidfile\fR]] 3 | [\fB\-\-overwrite\-pidfile\fR] 4 | [\fB\-\-detach\fR] 5 | [\fB\-\-no\-chdir\fR] 6 | [\fB\-\-no\-self\-confinement\fR] 7 | -------------------------------------------------------------------------------- /lib/dh1024.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DH PARAMETERS----- 2 | MIGHAoGBAPSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsY 3 | jY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6 4 | ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpL3jHAgEC 5 | -----END DH PARAMETERS----- 6 | 7 | These are the 1024 bit DH parameters from "Assigned Number for SKIP Protocols" 8 | (http://www.skip-vpn.org/spec/numbers.html). 9 | See there for how they were generated. 10 | Note that g is not a generator, but this is not a problem since p is a safe prime. 11 | -------------------------------------------------------------------------------- /lib/dh2048.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DH PARAMETERS----- 2 | MIIBCAKCAQEA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadWoxTpj0BV 3 | 89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeSWc39uK50 4 | T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0iP1YTknb 5 | zSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF040zT9fBdX 6 | Q6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQClCbAkbT 7 | CD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwIBAg== 8 | -----END DH PARAMETERS----- 9 | 10 | These are the 2048 bit DH parameters from "Assigned Number for SKIP Protocols" 11 | (http://www.skip-vpn.org/spec/numbers.html). 12 | See there for how they were generated. 13 | -------------------------------------------------------------------------------- /lib/dh4096.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DH PARAMETERS----- 2 | MIICCAKCAgEA+hRyUsFN4VpJ1O8JLcCo/VWr19k3BCgJ4uk+d+KhehjdRqNDNyOQ 3 | l/MOyQNQfWXPeGKmOmIig6Ev/nm6Nf9Z2B1h3R4hExf+zTiHnvVPeRBhjdQi81rt 4 | Xeoh6TNrSBIKIHfUJWBh3va0TxxjQIs6IZOLeVNRLMqzeylWqMf49HsIXqbcokUS 5 | Vt1BkvLdW48j8PPv5DsKRN3tloTxqDJGo9tKvj1Fuk74A+Xda1kNhB7KFlqMyN98 6 | VETEJ6c7KpfOo30mnK30wqw3S8OtaIR/maYX72tGOno2ehFDkq3pnPtEbD2CScxc 7 | alJC+EL7RPk5c/tgeTvCngvc1KZn92Y//EI7G9tPZtylj2b56sHtMftIoYJ9+ODM 8 | sccD5Piz/rejE3Ome8EOOceUSCYAhXn8b3qvxVI1ddd1pED6FHRhFvLrZxFvBEM9 9 | ERRMp5QqOaHJkM+Dxv8Cj6MqrCbfC4u+ZErxodzuusgDgvZiLF22uxMZbobFWyte 10 | OvOzKGtwcTqO/1wV5gKkzu1ZVswVUQd5Gg8lJicwqRWyyNRczDDoG9jVDxmogKTH 11 | AaqLulO7R8Ifa1SwF2DteSGVtgWEN8gDpN3RBmmPTDngyF2DHb5qmpnznwtFKdTL 12 | KWbuHn491xNO25CQWMtem80uKw+pTnisBRF/454n1Jnhub144YRBoN8CAQI= 13 | -----END DH PARAMETERS----- 14 | 15 | These are the 4096 bit DH parameters from "Assigned Number for SKIP Protocols" 16 | (http://www.skip-vpn.org/spec/numbers.html). 17 | See there for how they were generated. 18 | Note that g is not a generator, but this is not a problem since p is a safe prime. 19 | -------------------------------------------------------------------------------- /lib/dhparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008, 2017 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef DHPARAMS_H 18 | #define DHPARAMS_H 1 19 | 20 | #include 21 | #include 22 | 23 | DH *get_dh1024(void); 24 | DH *get_dh2048(void); 25 | DH *get_dh4096(void); 26 | 27 | #endif /* dhparams.h */ 28 | -------------------------------------------------------------------------------- /lib/entropy.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2010 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef ENTROPY_H 17 | #define ENTROPY_H 1 18 | 19 | #include 20 | 21 | int get_entropy(void *, size_t); 22 | void get_entropy_or_die(void *, size_t); 23 | 24 | #endif /* entropy.h */ 25 | -------------------------------------------------------------------------------- /lib/if-notifier-stub.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | #include "if-notifier.h" 19 | #include 20 | #include "compiler.h" 21 | 22 | struct if_notifier * 23 | if_notifier_create(if_notify_func *cb OVS_UNUSED, void *aux OVS_UNUSED) 24 | { 25 | return NULL; 26 | } 27 | 28 | void 29 | if_notifier_destroy(struct if_notifier *notifier OVS_UNUSED) 30 | { 31 | } 32 | 33 | void 34 | if_notifier_run(void) 35 | { 36 | } 37 | 38 | void 39 | if_notifier_wait(void) 40 | { 41 | } 42 | -------------------------------------------------------------------------------- /lib/if-notifier.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Red Hat, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef IF_NOTIFIER_H 18 | #define IF_NOTIFIER_H 1 19 | 20 | struct if_notifier; 21 | 22 | typedef void if_notify_func(void *aux); 23 | 24 | struct if_notifier *if_notifier_create(if_notify_func *, void *aux); 25 | void if_notifier_destroy(struct if_notifier *); 26 | 27 | void if_notifier_run(void); 28 | void if_notifier_wait(void); 29 | 30 | #endif /* if-notifier.h */ 31 | -------------------------------------------------------------------------------- /lib/libopenvswitch.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libopenvswitch 7 | Description: Open vSwitch library 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lopenvswitch 10 | Libs.private: @LIBS@ 11 | Cflags: -I${includedir}/openvswitch 12 | -------------------------------------------------------------------------------- /lib/libopenvswitch.sym.in: -------------------------------------------------------------------------------- 1 | libopenvswitch_@LT_CURRENT@ { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /lib/libsflow.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libofproto 7 | Description: sFlow library of Open vSwitch 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lsflow 10 | Libs.private: @LIBS@ 11 | Cflags: -I${includedir}/openvswitch 12 | -------------------------------------------------------------------------------- /lib/libsflow.sym.in: -------------------------------------------------------------------------------- 1 | libsflow_@LT_CURRENT@ { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /lib/lockfile.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2008, 2009 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef LOCKFILE_H 17 | #define LOCKFILE_H 1 18 | 19 | struct lockfile; 20 | 21 | char *lockfile_name(const char *file); 22 | int lockfile_lock(const char *file, struct lockfile **); 23 | void lockfile_unlock(struct lockfile *); 24 | void lockfile_postfork(void); 25 | 26 | #endif /* lib/lockfile.h */ 27 | -------------------------------------------------------------------------------- /lib/memory-unixctl.man: -------------------------------------------------------------------------------- 1 | .SS "MEMORY COMMANDS" 2 | These commands report memory usage. 3 | . 4 | .IP "\fBmemory/show\fR" 5 | Displays some basic statistics about \fB\*(PN\fR's memory usage. 6 | \fB\*(PN\fR also logs this information soon after startup and 7 | periodically as its memory consumption grows. 8 | -------------------------------------------------------------------------------- /lib/netdev-dpdk-unixctl.man: -------------------------------------------------------------------------------- 1 | .SS "NETDEV-DPDK COMMANDS" 2 | These commands manage DPDK related ports (\fBtype=\fR\fIdpdk*\fR). 3 | .IP "\fBnetdev-dpdk/set-admin-state\fR [\fIinterface\fR] \fBup\fR | \fBdown\fR" 4 | Change the admin state for DPDK \fIinterface\fR to \fBup\fR or \fBdown\fR. 5 | If \fIinterface\fR is not specified, then it applies to all DPDK ports. 6 | .IP "\fBnetdev-dpdk/detach\fR \fIpci-address\fR" 7 | Detaches device with corresponding \fIpci-address\fR from DPDK. This command 8 | can be used to detach device if it wasn't detached automatically after port 9 | deletion. Refer to the documentation for details and instructions. 10 | .IP "\fBnetdev-dpdk/get-mempool-info\fR [\fIinterface\fR]" 11 | Prints the debug information about memory pool used by DPDK \fIinterface\fR. 12 | If called without arguments, information of all the available mempools will 13 | be printed. For additional mempool statistics enable 14 | \fBCONFIG_RTE_LIBRTE_MEMPOOL_DEBUG\fR while building DPDK. 15 | -------------------------------------------------------------------------------- /lib/ofp-version-opt.h: -------------------------------------------------------------------------------- 1 | #ifndef OFP_VERSION_H 2 | #define OFP_VERSION_H 1 3 | 4 | #include 5 | #include "util.h" 6 | #include "openvswitch/ofp-util.h" 7 | 8 | #define OFP_VERSION_LONG_OPTIONS \ 9 | {"version", no_argument, NULL, 'V'}, \ 10 | {"protocols", required_argument, NULL, 'O'} 11 | 12 | #define OFP_VERSION_OPTION_HANDLERS \ 13 | case 'V': \ 14 | ovs_print_version(OFP10_VERSION, OFP14_VERSION); \ 15 | exit(EXIT_SUCCESS); \ 16 | \ 17 | case 'O': \ 18 | set_allowed_ofp_versions(optarg); \ 19 | break; 20 | 21 | uint32_t get_allowed_ofp_versions(void); 22 | void set_allowed_ofp_versions(const char *string); 23 | void mask_allowed_ofp_versions(uint32_t); 24 | void add_allowed_ofp_versions(uint32_t); 25 | void ofp_version_usage(void); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /lib/ofp-version.man: -------------------------------------------------------------------------------- 1 | .de IQ 2 | . br 3 | . ns 4 | . IP "\\$1" 5 | .. 6 | .IP "\fB\-O \fR[\fIversion\fR[\fB,\fIversion\fR]...]\fR" 7 | .IQ "\fB\-\-protocols=\fR[\fIversion\fR[\fB,\fIversion\fR]...]\fR" 8 | Sets the OpenFlow protocol versions that are allowed when establishing 9 | an OpenFlow session. 10 | . 11 | .IP 12 | These protocol versions are enabled by default: 13 | . 14 | .RS 15 | .IP \(bu 16 | \fBOpenFlow10\fR, for OpenFlow 1.0. 17 | .RE 18 | . 19 | The following protocol versions are generally supported, but for 20 | compatibility with older versions of Open vSwitch they are not enabled 21 | by default: 22 | . 23 | .RS 24 | .IP \(bu 25 | \fBOpenFlow11\fR, for OpenFlow 1.1. 26 | . 27 | .IP \(bu 28 | \fBOpenFlow12\fR, for OpenFlow 1.2. 29 | . 30 | .IP \(bu 31 | \fBOpenFlow13\fR, for OpenFlow 1.3. 32 | . 33 | .IP \(bu 34 | \fBOpenFlow14\fR, for OpenFlow 1.4. 35 | .RE 36 | . 37 | .IP 38 | Support for the following protocol versions is provided for testing 39 | and development purposes. They are not enabled by default: 40 | . 41 | .RS 42 | .IP \(bu 43 | \fBOpenFlow15\fR, for OpenFlow 1.5. 44 | . 45 | .IP \(bu 46 | \fBOpenFlow16\fR, for OpenFlow 1.6. 47 | .RE 48 | -------------------------------------------------------------------------------- /lib/ovsdb-server-idl.ann: -------------------------------------------------------------------------------- 1 | # -*- python -*- 2 | 3 | # This code, when invoked by "ovsdb-idlc annotate" (by the build 4 | # process), annotates vswitch.ovsschema with additional data that give 5 | # the ovsdb-idl engine information about the types involved, so that 6 | # it can generate more programmer-friendly data structures. 7 | 8 | s["idlPrefix"] = "serverrec_" 9 | s["idlHeader"] = "\"lib/ovsdb-server-idl.h\"" 10 | -------------------------------------------------------------------------------- /lib/ovsdb-session.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2017 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef OVSDB_SESSION_H 17 | #define OVSDB_SESSION_H 1 18 | 19 | struct svec; 20 | struct uuid; 21 | 22 | void ovsdb_session_parse_remote(const char *s, 23 | struct svec *remotes, struct uuid *cid); 24 | 25 | #endif /* ovsdb-session.h */ 26 | -------------------------------------------------------------------------------- /lib/service-syn.man: -------------------------------------------------------------------------------- 1 | .IP "Service options:" 2 | [\fB\-\-service\fR] 3 | [\fB\-\-service\-monitor\fR] 4 | -------------------------------------------------------------------------------- /lib/service.man: -------------------------------------------------------------------------------- 1 | The following options are valid only on Windows platform. 2 | .TP 3 | \fB\-\-service\fR 4 | Causes \fB\*(PN\fR to run as a service in the background. The service 5 | should already have been created through external tools like \fBSC.exe\fR. 6 | . 7 | .TP 8 | \fB\-\-service\-monitor\fR 9 | Causes the \fB\*(PN\fR service to be automatically restarted by the Windows 10 | services manager if the service dies or exits for unexpected reasons. 11 | .IP 12 | When \fB\-\-service\fR is not specified, this option has no effect. 13 | -------------------------------------------------------------------------------- /lib/signals.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008, 2011, 2013 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef SIGNALS_H 18 | #define SIGNALS_H 1 19 | 20 | #include 21 | #include 22 | #include "openvswitch/type-props.h" 23 | 24 | enum { SIGNAL_NAME_BUFSIZE = 7 + INT_STRLEN(int) + 1 }; 25 | const char *signal_name(int signum, char *namebuf, size_t bufsize); 26 | 27 | void xsigaction(int signum, const struct sigaction *, struct sigaction *old); 28 | 29 | #endif /* signals.h */ 30 | -------------------------------------------------------------------------------- /lib/sort.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2009 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef SORT_H 17 | #define SORT_H 1 18 | 19 | #include 20 | 21 | void sort(size_t count, 22 | int (*compare)(size_t a, size_t b, void *aux), 23 | void (*swap)(size_t a, size_t b, void *aux), 24 | void *aux); 25 | 26 | #endif /* sort.h */ 27 | -------------------------------------------------------------------------------- /lib/ssl-bootstrap-syn.man: -------------------------------------------------------------------------------- 1 | .br 2 | [\fB\-\-bootstrap\-ca\-cert=\fIcacert.pem\fR] 3 | -------------------------------------------------------------------------------- /lib/ssl-bootstrap.man: -------------------------------------------------------------------------------- 1 | .IP "\fB\-\-bootstrap\-ca\-cert=\fIcacert.pem\fR" 2 | When \fIcacert.pem\fR exists, this option has the same effect as 3 | \fB\-C\fR or \fB\-\-ca\-cert\fR. If it does not exist, then 4 | \fB\*(PN\fR will attempt to obtain the CA certificate from the 5 | SSL peer on its first SSL connection and save it to the named PEM 6 | file. If it is successful, it will immediately drop the connection 7 | and reconnect, and from then on all SSL connections must be 8 | authenticated by a certificate signed by the CA certificate thus 9 | obtained. 10 | .IP 11 | \fBThis option exposes the SSL connection to a man-in-the-middle 12 | attack obtaining the initial CA certificate\fR, but it may be useful 13 | for bootstrapping. 14 | .IP 15 | This option is only useful if the SSL peer sends its CA certificate as 16 | part of the SSL certificate chain. The SSL protocol does not require 17 | the server to send the CA certificate. 18 | .IP 19 | This option is mutually exclusive with \fB\-C\fR and 20 | \fB\-\-ca\-cert\fR. 21 | -------------------------------------------------------------------------------- /lib/ssl-connect-syn.man: -------------------------------------------------------------------------------- 1 | .IP "SSL connection options:" 2 | [\fB\-\-ssl\-protocols=\fIprotocols\fR] 3 | .br 4 | [\fB\-\-ssl\-ciphers=\fIciphers\fR] 5 | .br 6 | -------------------------------------------------------------------------------- /lib/ssl-connect.man: -------------------------------------------------------------------------------- 1 | .IP "\fB\-\-ssl\-protocols=\fIprotocols\fR" 2 | Specifies, in a comma- or space-delimited list, the SSL protocols 3 | \fB\*(PN\fR will enable for SSL connections. Supported 4 | \fIprotocols\fR include \fBTLSv1\fR, \fBTLSv1.1\fR, and \fBTLSv1.2\fR. 5 | Regardless of order, the highest protocol supported by both sides will 6 | be chosen when making the connection. The default when this option is 7 | omitted is \fBTLSv1,TLSv1.1,TLSv1.2\fR. 8 | . 9 | .IP "\fB\-\-ssl\-ciphers=\fIciphers\fR" 10 | Specifies, in OpenSSL cipher string format, the ciphers \fB\*(PN\fR will 11 | support for SSL connections. The default when this option is omitted is 12 | \fBHIGH:!aNULL:!MD5\fR. 13 | -------------------------------------------------------------------------------- /lib/ssl-peer-ca-cert-syn.man: -------------------------------------------------------------------------------- 1 | .br 2 | [\fB\-\-peer\-ca\-cert=\fIpeer-cacert.pem\fR] 3 | -------------------------------------------------------------------------------- /lib/ssl-peer-ca-cert.man: -------------------------------------------------------------------------------- 1 | .IP "\fB\-\-peer\-ca\-cert=\fIpeer-cacert.pem\fR" 2 | Specifies a PEM file that contains one or more additional certificates 3 | to send to SSL peers. \fIpeer-cacert.pem\fR should be the CA 4 | certificate used to sign \fB\*(PN\fR's own certificate, that is, the 5 | certificate specified on \fB\-c\fR or \fB\-\-certificate\fR. If 6 | \fB\*(PN\fR's certificate is self-signed, then \fB\-\-certificate\fR 7 | and \fB\-\-peer\-ca\-cert\fR should specify the same file. 8 | .IP 9 | This option is not useful in normal operation, because the SSL peer 10 | must already have the CA certificate for the peer to have any 11 | confidence in \fB\*(PN\fR's identity. However, this offers a way for 12 | a new installation to bootstrap the CA certificate on its first SSL 13 | connection. 14 | -------------------------------------------------------------------------------- /lib/ssl-syn.man: -------------------------------------------------------------------------------- 1 | .IP "Public key infrastructure options:" 2 | [\fB\-\-private\-key=\fIprivkey.pem\fR] 3 | .br 4 | [\fB\-\-certificate=\fIcert.pem\fR] 5 | .br 6 | [\fB\-\-ca\-cert=\fIcacert.pem\fR] 7 | -------------------------------------------------------------------------------- /lib/syslog-direct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef SYSLOG_DIRECT_H 18 | #define SYSLOG_DIRECT_H 1 19 | 20 | struct syslogger *syslog_direct_create(const char *method); 21 | 22 | #endif /* syslog-direct.h */ 23 | -------------------------------------------------------------------------------- /lib/syslog-libc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef SYSLOG_LIBC_H 18 | #define SYSLOG_LIBC_H 1 19 | 20 | struct syslogger *syslog_libc_create(void); 21 | 22 | #endif /* syslog-libc.h */ 23 | -------------------------------------------------------------------------------- /lib/unixctl-syn.man: -------------------------------------------------------------------------------- 1 | .IP "Runtime management options:" 2 | \fB\-\-unixctl=\fIsocket\fR 3 | -------------------------------------------------------------------------------- /lib/unixctl.man: -------------------------------------------------------------------------------- 1 | .IP "\fB\-\-unixctl=\fIsocket\fR" 2 | Sets the name of the control socket on which \fB\*(PN\fR listens for 3 | runtime management commands (see \fBRUNTIME MANAGEMENT COMMANDS\fR, 4 | below). If \fIsocket\fR does not begin with \fB/\fR, it is 5 | interpreted as relative to \fB@RUNDIR@\fR. If \fB\-\-unixctl\fR is 6 | not used at all, the default socket is 7 | \fB@RUNDIR@/\*(PN.\fIpid\fB.ctl\fR, where \fIpid\fR is \fB\*(PN\fR's 8 | process ID. 9 | .IP 10 | On Windows a local named pipe is used to listen for runtime management 11 | commands. A file is created in the absolute path as pointed by 12 | \fIsocket\fR or if \fB\-\-unixctl\fR is not used at all, a file is 13 | created as \fB\*(PN.ctl\fR in the configured \fIOVS_RUNDIR\fR 14 | directory. The file exists just to mimic the behavior of a Unix domain socket. 15 | .IP 16 | Specifying \fBnone\fR for \fIsocket\fR disables the control socket 17 | feature. 18 | -------------------------------------------------------------------------------- /lib/valgrind.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008, 2009 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef VALGRIND_H 18 | #define VALGRIND_H 1 19 | 20 | #ifdef HAVE_VALGRIND_VALGRIND_H 21 | #include 22 | #else 23 | #define RUNNING_ON_VALGRIND 0 24 | #endif 25 | 26 | #endif /* valgrind.h */ 27 | -------------------------------------------------------------------------------- /lib/vconn-active.man: -------------------------------------------------------------------------------- 1 | .IP "\fBssl:\fIip\fR[\fB:\fIport\fR]" 2 | .IQ "\fBtcp:\fIip\fR[\fB:\fIport\fR]" 3 | The specified \fIport\fR on the host at the given \fIip\fR, which must 4 | be expressed as an IP address (not a DNS name) in IPv4 or IPv6 address 5 | format. Wrap IPv6 addresses in square brackets, 6 | e.g. \fBtcp:[::1]:6653\fR. On Linux, use \fB%\fIdevice\fR to 7 | designate a scope for IPv6 link-level addresses, 8 | e.g. \fBtcp:[fe80::1234%eth0]:6653\fR. For \fBssl\fR, the 9 | \fB\-\-private\-key\fR, \fB\-\-certificate\fR, and \fB\-\-ca\-cert\fR 10 | options are mandatory. 11 | .IP 12 | If \fIport\fR is not specified, it defaults to 6653. 13 | .TP 14 | \fBunix:\fIfile\fR 15 | On POSIX, a Unix domain server socket named \fIfile\fR. 16 | .IP 17 | On Windows, connect to a local named pipe that is represented by a 18 | file created in the path \fIfile\fR to mimic the behavior of a Unix 19 | domain socket. 20 | -------------------------------------------------------------------------------- /lib/vconn-passive.man: -------------------------------------------------------------------------------- 1 | .IP "\fBpssl:\fR[\fIport\fR][\fB:\fIip\fR]" 2 | .IQ "\fBptcp:\fR[\fIport\fR][\fB:\fIip\fR]" 3 | Listens for OpenFlow connections on \fIport\fR. The default 4 | \fIport\fR is 6653. By default, connections are allowed from any IPv4 5 | address. Specify \fIip\fR as an IPv4 address or a bracketed IPv6 6 | address (e.g. \fBptcp:6653:[::1]\fR). On Linux, use \fB%\fIdevice\fR 7 | to designate a scope for IPv6 link-level addresses, 8 | e.g. \fBptcp:6653:[fe80::1234%eth0]\fR. DNS names may 9 | not be used. For \fBpssl\fR, the 10 | \fB\-\-private\-key\fR,\fB\-\-certificate\fR, and \fB\-\-ca\-cert\fR 11 | options are mandatory. 12 | .IP 13 | . 14 | .IP "\fBpunix:\fIfile\fR" 15 | Listens for OpenFlow connections on the Unix domain server socket 16 | named \fIfile\fR. 17 | -------------------------------------------------------------------------------- /lib/vlog-syn.man: -------------------------------------------------------------------------------- 1 | .IP "Logging options:" 2 | [\fB\-v\fR[\fImodule\fR[\fB:\fIdestination\fR[\fB:\fIlevel\fR]]]]\&... 3 | .br 4 | [\fB\-\-verbose[=\fImodule\fR[\fB:\fIdestination\fR[\fB:\fIlevel\fR]]]]\&... 5 | .br 6 | [\fB\-\-log\-file\fR[\fB=\fIfile\fR]] 7 | -------------------------------------------------------------------------------- /lib/vswitch-idl.ann: -------------------------------------------------------------------------------- 1 | # -*- python -*- 2 | 3 | # This code, when invoked by "ovsdb-idlc annotate" (by the build 4 | # process), annotates vswitch.ovsschema with additional data that give 5 | # the ovsdb-idl engine information about the types involved, so that 6 | # it can generate more programmer-friendly data structures. 7 | 8 | s["idlPrefix"] = "ovsrec_" 9 | s["idlHeader"] = "\"lib/vswitch-idl.h\"" 10 | -------------------------------------------------------------------------------- /m4/.gitignore: -------------------------------------------------------------------------------- 1 | /libtool.m4 2 | /ltoptions.m4 3 | /ltsugar.m4 4 | /ltversion.m4 5 | /lt~obsolete.m4 6 | -------------------------------------------------------------------------------- /m4/automake.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2013 Nicira, Inc. 2 | # 3 | # Copying and distribution of this file, with or without modification, 4 | # are permitted in any medium without royalty provided the copyright 5 | # notice and this notice are preserved. This file is offered as-is, 6 | # without warranty of any kind. 7 | 8 | EXTRA_DIST += \ 9 | m4/absolute-header.m4 \ 10 | m4/include_next.m4 \ 11 | m4/pkg.m4 12 | -------------------------------------------------------------------------------- /m4/compat.m4: -------------------------------------------------------------------------------- 1 | # -*- autoconf -*- 2 | 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at: 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | m4_ifndef([AS_VAR_COPY], 16 | [m4_define([AS_VAR_COPY], 17 | [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])]) 18 | -------------------------------------------------------------------------------- /ofproto/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /ipfix-entities.def 4 | /libofproto.pc 5 | -------------------------------------------------------------------------------- /ofproto/collectors.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2009, 2011 Nicira, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef COLLECTORS_H 18 | #define COLLECTORS_H 1 19 | 20 | #include 21 | #include 22 | 23 | struct collectors; 24 | struct sset; 25 | 26 | int collectors_create(const struct sset *targets, uint16_t default_port, 27 | struct collectors **); 28 | void collectors_destroy(struct collectors *); 29 | 30 | size_t collectors_send(const struct collectors *, const void *, size_t); 31 | 32 | int collectors_count(const struct collectors *); 33 | 34 | #endif /* collectors.h */ 35 | -------------------------------------------------------------------------------- /ofproto/ipfix-enterprise-entities.def: -------------------------------------------------------------------------------- 1 | /* IPFIX enterprise entities. */ 2 | #ifndef IPFIX_ENTERPRISE_ENTITY 3 | #define IPFIX_ENTERPRISE_ENTITY(ENUM, ID, SIZE, NAME, ENTERPRISE) 4 | #endif 5 | 6 | #define IPFIX_ENTERPRISE_VMWARE 6876 7 | 8 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_TYPE, 891, 1, tunnelType, IPFIX_ENTERPRISE_VMWARE) 9 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_KEY, 892, 0, tunnelKey, IPFIX_ENTERPRISE_VMWARE) 10 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_SOURCE_IPV4_ADDRESS, 893, 4, tunnelSourceIPv4Address, IPFIX_ENTERPRISE_VMWARE) 11 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_DESTINATION_IPV4_ADDRESS, 894, 4, tunnelDestinationIPv4Address, IPFIX_ENTERPRISE_VMWARE) 12 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_PROTOCOL_IDENTIFIER, 895, 1, tunnelProtocolIdentifier, IPFIX_ENTERPRISE_VMWARE) 13 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_SOURCE_TRANSPORT_PORT, 896, 2, tunnelSourceTransportPort, IPFIX_ENTERPRISE_VMWARE) 14 | IPFIX_ENTERPRISE_ENTITY(TUNNEL_DESTINATION_TRANSPORT_PORT, 897, 2, tunnelDestinationTransportPort, IPFIX_ENTERPRISE_VMWARE) 15 | IPFIX_ENTERPRISE_ENTITY(VIRTUAL_OBS_ID, 898, 0, virtualObsID, IPFIX_ENTERPRISE_VMWARE) 16 | 17 | #undef IPFIX_ENTERPRISE_ENTITY 18 | -------------------------------------------------------------------------------- /ofproto/libofproto.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libofproto 7 | Description: OpenFlow library of Open vSwitch 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lofproto 10 | Libs.private: @LIBS@ 11 | Cflags: -I${includedir}/openvswitch 12 | -------------------------------------------------------------------------------- /ofproto/libofproto.sym.in: -------------------------------------------------------------------------------- 1 | libofproto_@LT_CURRENT@ { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /ovn/.gitignore: -------------------------------------------------------------------------------- 1 | /ovn-architecture.7 2 | /ovn-nb.5 3 | /ovn-nb.gv 4 | /ovn-nb.pic 5 | /ovn-sb.5 6 | /ovn-sb.gv 7 | /ovn-sb.pic 8 | /*.ovsschema.stamp 9 | -------------------------------------------------------------------------------- /ovn/controller-vtep/.gitignore: -------------------------------------------------------------------------------- 1 | /ovn-controller-vtep 2 | /ovn-controller-vtep.8 3 | -------------------------------------------------------------------------------- /ovn/controller-vtep/automake.mk: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS += ovn/controller-vtep/ovn-controller-vtep 2 | ovn_controller_vtep_ovn_controller_vtep_SOURCES = \ 3 | ovn/controller-vtep/binding.c \ 4 | ovn/controller-vtep/binding.h \ 5 | ovn/controller-vtep/gateway.c \ 6 | ovn/controller-vtep/gateway.h \ 7 | ovn/controller-vtep/ovn-controller-vtep.c \ 8 | ovn/controller-vtep/ovn-controller-vtep.h \ 9 | ovn/controller-vtep/vtep.c \ 10 | ovn/controller-vtep/vtep.h 11 | ovn_controller_vtep_ovn_controller_vtep_LDADD = ovn/lib/libovn.la lib/libopenvswitch.la vtep/libvtep.la 12 | man_MANS += ovn/controller-vtep/ovn-controller-vtep.8 13 | EXTRA_DIST += ovn/controller-vtep/ovn-controller-vtep.8.xml 14 | CLEANFILES += ovn/controller-vtep/ovn-controller-vtep.8 15 | -------------------------------------------------------------------------------- /ovn/controller-vtep/binding.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | 17 | #ifndef OVN_BINDING_H 18 | #define OVN_BINDING_H 1 19 | 20 | #include 21 | 22 | struct controller_vtep_ctx; 23 | 24 | void binding_run(struct controller_vtep_ctx *); 25 | bool binding_cleanup(struct controller_vtep_ctx *); 26 | 27 | #endif /* ovn/controller-gw/binding.h */ 28 | -------------------------------------------------------------------------------- /ovn/controller-vtep/gateway.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef OVN_GATEWAY_H 17 | #define OVN_GATEWAY_H 1 18 | 19 | #include 20 | 21 | struct controller_vtep_ctx; 22 | 23 | void gateway_run(struct controller_vtep_ctx *); 24 | bool gateway_cleanup(struct controller_vtep_ctx *); 25 | 26 | #endif /* ovn/controller-gw/gateway.h */ 27 | -------------------------------------------------------------------------------- /ovn/controller-vtep/vtep.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | 17 | #ifndef OVN_VTEP_H 18 | #define OVN_VTEP_H 1 19 | 20 | #include 21 | 22 | struct controller_vtep_ctx; 23 | 24 | void vtep_run(struct controller_vtep_ctx *); 25 | bool vtep_cleanup(struct controller_vtep_ctx *); 26 | 27 | #endif /* ovn/controller-vtep/vtep.h */ 28 | -------------------------------------------------------------------------------- /ovn/controller/.gitignore: -------------------------------------------------------------------------------- 1 | /ovn-controller 2 | /ovn-controller.8 3 | -------------------------------------------------------------------------------- /ovn/controller/automake.mk: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS += ovn/controller/ovn-controller 2 | ovn_controller_ovn_controller_SOURCES = \ 3 | ovn/controller/bfd.c \ 4 | ovn/controller/bfd.h \ 5 | ovn/controller/binding.c \ 6 | ovn/controller/binding.h \ 7 | ovn/controller/chassis.c \ 8 | ovn/controller/chassis.h \ 9 | ovn/controller/encaps.c \ 10 | ovn/controller/encaps.h \ 11 | ovn/controller/gchassis.c \ 12 | ovn/controller/gchassis.h \ 13 | ovn/controller/lflow.c \ 14 | ovn/controller/lflow.h \ 15 | ovn/controller/lport.c \ 16 | ovn/controller/lport.h \ 17 | ovn/controller/ofctrl.c \ 18 | ovn/controller/ofctrl.h \ 19 | ovn/controller/pinctrl.c \ 20 | ovn/controller/pinctrl.h \ 21 | ovn/controller/patch.c \ 22 | ovn/controller/patch.h \ 23 | ovn/controller/ovn-controller.c \ 24 | ovn/controller/ovn-controller.h \ 25 | ovn/controller/physical.c \ 26 | ovn/controller/physical.h 27 | ovn_controller_ovn_controller_LDADD = ovn/lib/libovn.la lib/libopenvswitch.la 28 | man_MANS += ovn/controller/ovn-controller.8 29 | EXTRA_DIST += ovn/controller/ovn-controller.8.xml 30 | CLEANFILES += ovn/controller/ovn-controller.8 31 | -------------------------------------------------------------------------------- /ovn/controller/encaps.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef OVN_ENCAPS_H 17 | #define OVN_ENCAPS_H 1 18 | 19 | #include 20 | 21 | struct controller_ctx; 22 | struct ovsdb_idl; 23 | struct ovsrec_bridge; 24 | 25 | void encaps_register_ovs_idl(struct ovsdb_idl *); 26 | void encaps_run(struct controller_ctx *, 27 | const struct ovsrec_bridge *br_int, const char *chassis_id); 28 | bool encaps_cleanup(struct controller_ctx *, 29 | const struct ovsrec_bridge *br_int); 30 | 31 | #endif /* ovn/encaps.h */ 32 | -------------------------------------------------------------------------------- /ovn/controller/patch.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2015, 2016 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef OVN_PATCH_H 17 | #define OVN_PATCH_H 1 18 | 19 | /* Patch Ports 20 | * =========== 21 | * 22 | * This module adds and removes patch ports between the integration bridge and 23 | * physical bridges, as directed by other-config:ovn-bridge-mappings. */ 24 | 25 | struct controller_ctx; 26 | struct hmap; 27 | struct ovsrec_bridge; 28 | struct sbrec_chassis; 29 | 30 | void patch_run(struct controller_ctx *, const struct ovsrec_bridge *br_int, 31 | const struct sbrec_chassis *); 32 | 33 | #endif /* ovn/patch.h */ 34 | -------------------------------------------------------------------------------- /ovn/lib/.gitignore: -------------------------------------------------------------------------------- 1 | /libovn.sym 2 | /ovn-nb-idl.c 3 | /ovn-nb-idl.h 4 | /ovn-nb-idl.ovsidl 5 | /ovn-sb-idl.c 6 | /ovn-sb-idl.h 7 | /ovn-sb-idl.ovsidl 8 | -------------------------------------------------------------------------------- /ovn/lib/libovn.sym.in: -------------------------------------------------------------------------------- 1 | libovn_@LT_CURRENT@ { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /ovn/lib/ovn-nb-idl.ann: -------------------------------------------------------------------------------- 1 | # -*- python -*- 2 | 3 | # This code, when invoked by "ovsdb-idlc annotate" (by the build 4 | # process), annotates vswitch.ovsschema with additional data that give 5 | # the ovsdb-idl engine information about the types involved, so that 6 | # it can generate more programmer-friendly data structures. 7 | 8 | s["idlPrefix"] = "nbrec_" 9 | s["idlHeader"] = "\"ovn/lib/ovn-nb-idl.h\"" 10 | -------------------------------------------------------------------------------- /ovn/lib/ovn-sb-idl.ann: -------------------------------------------------------------------------------- 1 | # -*- python -*- 2 | 3 | # This code, when invoked by "ovsdb-idlc annotate" (by the build 4 | # process), annotates vswitch.ovsschema with additional data that give 5 | # the ovsdb-idl engine information about the types involved, so that 6 | # it can generate more programmer-friendly data structures. 7 | 8 | s["idlPrefix"] = "sbrec_" 9 | s["idlHeader"] = "\"ovn/lib/ovn-sb-idl.h\"" 10 | -------------------------------------------------------------------------------- /ovn/northd/.gitignore: -------------------------------------------------------------------------------- 1 | /ovn-northd 2 | /ovn-northd.8 3 | -------------------------------------------------------------------------------- /ovn/northd/automake.mk: -------------------------------------------------------------------------------- 1 | # ovn-northd 2 | bin_PROGRAMS += ovn/northd/ovn-northd 3 | ovn_northd_ovn_northd_SOURCES = ovn/northd/ovn-northd.c 4 | ovn_northd_ovn_northd_LDADD = \ 5 | ovn/lib/libovn.la \ 6 | ovsdb/libovsdb.la \ 7 | lib/libopenvswitch.la 8 | man_MANS += ovn/northd/ovn-northd.8 9 | EXTRA_DIST += ovn/northd/ovn-northd.8.xml 10 | CLEANFILES += ovn/northd/ovn-northd.8 11 | -------------------------------------------------------------------------------- /ovn/utilities/.gitignore: -------------------------------------------------------------------------------- 1 | /ovn-ctl.8 2 | /ovn-nbctl 3 | /ovn-nbctl.8 4 | /ovn-sbctl 5 | /ovn-sbctl.8 6 | /ovn-trace 7 | /ovn-trace.8 8 | /ovn-detrace 9 | /ovn-detrace.1 10 | /ovn-docker-overlay-driver 11 | /ovn-docker-underlay-driver 12 | -------------------------------------------------------------------------------- /ovn/utilities/bugtool/automake.mk: -------------------------------------------------------------------------------- 1 | if HAVE_PYTHON 2 | bugtool_plugins += \ 3 | ovn/utilities/bugtool/plugins/network-status/ovn.xml 4 | 5 | bugtool_scripts += \ 6 | ovn/utilities/bugtool/ovn-bugtool-nbctl-show \ 7 | ovn/utilities/bugtool/ovn-bugtool-sbctl-show \ 8 | ovn/utilities/bugtool/ovn-bugtool-sbctl-lflow-list 9 | endif 10 | -------------------------------------------------------------------------------- /ovn/utilities/bugtool/ovn-bugtool-nbctl-show: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2016 Nicira, Inc. 18 | 19 | ovn-nbctl --timeout=3 show 20 | -------------------------------------------------------------------------------- /ovn/utilities/bugtool/ovn-bugtool-sbctl-lflow-list: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2016 Nicira, Inc. 18 | 19 | ovn-sbctl --timeout=3 lflow-list 20 | -------------------------------------------------------------------------------- /ovn/utilities/bugtool/ovn-bugtool-sbctl-show: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2016 Nicira, Inc. 18 | 19 | ovn-sbctl --timeout=3 show 20 | -------------------------------------------------------------------------------- /ovn/utilities/bugtool/plugins/network-status/ovn.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | /usr/share/openvswitch/scripts/ovn-bugtool-nbctl-show 21 | /usr/share/openvswitch/scripts/ovn-bugtool-sbctl-show 22 | /usr/share/openvswitch/scripts/ovn-bugtool-sbctl-lflow-list 23 | 24 | -------------------------------------------------------------------------------- /ovsdb/.gitignore: -------------------------------------------------------------------------------- 1 | /_server.ovsschema.inc 2 | /_server.ovsschema.stamp 3 | /ovsdb-client 4 | /ovsdb-client.1 5 | /ovsdb-doc 6 | /ovsdb-dot 7 | /ovsdb-idlc 8 | /ovsdb-server 9 | /ovsdb-server.1 10 | /ovsdb-server.5 11 | /ovsdb-tool 12 | /ovsdb-tool.1 13 | /libovsdb.pc 14 | -------------------------------------------------------------------------------- /ovsdb/_server.ovsschema: -------------------------------------------------------------------------------- 1 | {"name": "_Server", 2 | "version": "1.1.0", 3 | "cksum": "3236486585 698", 4 | "tables": { 5 | "Database": { 6 | "columns": { 7 | "name": {"type": "string"}, 8 | "model": { 9 | "type": {"key": {"type": "string", 10 | "enum": ["set", ["standalone", "clustered"]]}}}, 11 | "connected": {"type": "boolean"}, 12 | "leader": {"type": "boolean"}, 13 | "schema": { 14 | "type": {"key": {"type": "string"}, "min": 0, "max": 1}}, 15 | "cid": { 16 | "type": {"key": {"type": "uuid"}, "min": 0, "max": 1}}, 17 | "sid": { 18 | "type": {"key": {"type": "uuid"}, "min": 0, "max": 1}}, 19 | "index": { 20 | "type": {"key": {"type": "integer"}, "min": 0, "max": 1}}}, 21 | "isRoot": true}}} 22 | -------------------------------------------------------------------------------- /ovsdb/libovsdb.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libovsdb 7 | Description: OVSDB library of Open vSwitch 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lovsdb 10 | Libs.private: @LIBS@ 11 | Cflags: -I${includedir}/openvswitch 12 | -------------------------------------------------------------------------------- /ovsdb/libovsdb.sym.in: -------------------------------------------------------------------------------- 1 | libovsdb_@LT_CURRENT@ { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /ovsdb/ovsdb-schemas.man: -------------------------------------------------------------------------------- 1 | .PP 2 | An OVSDB schema has a schema version number, and an OVSDB database 3 | embeds a particular version of an OVSDB schema. These version numbers 4 | take the form \fIx\fB.\fIy\fB.\fIz\fR, e.g. \fB1.2.3\fR. The OVSDB 5 | implementation does not enforce a particular version numbering scheme, 6 | but schemas managed within the Open vSwitch project use the following 7 | approach. Whenever the database schema is changed in a non-backward 8 | compatible way (e.g. deleting a column or a table), \fIx\fR is 9 | incremented (and \fIy\fR and \fIz\fR are reset to 0). When the 10 | database schema is changed in a backward compatible way (e.g. adding a 11 | new column), \fIy\fR is incremented (and \fIz\fR is reset to 0). When 12 | the database schema is changed cosmetically (e.g. reindenting its 13 | syntax), \fIz\fR is incremented. 14 | .PP 15 | Some OVSDB databases and schemas, especially very old ones, do not 16 | have a version number. 17 | .PP 18 | Schema version numbers and Open vSwitch version numbers are 19 | independent. 20 | -------------------------------------------------------------------------------- /python/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | *.egg-info 3 | -------------------------------------------------------------------------------- /python/README.rst: -------------------------------------------------------------------------------- 1 | Python library for working with Open vSwitch 2 | -------------------------------------------------------------------------------- /python/build/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/python/build/__init__.py -------------------------------------------------------------------------------- /python/ovs/.gitignore: -------------------------------------------------------------------------------- 1 | version.py 2 | -------------------------------------------------------------------------------- /python/ovs/__init__.py: -------------------------------------------------------------------------------- 1 | # This file intentionally left blank. 2 | -------------------------------------------------------------------------------- /python/ovs/compat/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/python/ovs/compat/__init__.py -------------------------------------------------------------------------------- /python/ovs/compat/sortedcontainers/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014-2016 Grant Jenks 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /python/ovs/db/__init__.py: -------------------------------------------------------------------------------- 1 | # This file intentionally left blank. 2 | -------------------------------------------------------------------------------- /python/ovstest/__init__.py: -------------------------------------------------------------------------------- 1 | # This file intentionally left blank. 2 | -------------------------------------------------------------------------------- /rhel/.gitignore: -------------------------------------------------------------------------------- 1 | openvswitch-dkms.spec 2 | openvswitch-kmod-rhel5.spec 3 | openvswitch-kmod-rhel6.spec 4 | openvswitch-kmod-fedora.spec 5 | openvswitch.spec 6 | openvswitch-fedora.spec 7 | usr_lib_systemd_system_ovs-vswitchd.service 8 | -------------------------------------------------------------------------------- /rhel/etc_logrotate.d_openvswitch: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009, 2010, 2011, 2012 Nicira, Inc. 2 | # 3 | # Copying and distribution of this file, with or without modification, 4 | # are permitted in any medium without royalty provided the copyright 5 | # notice and this notice are preserved. This file is offered as-is, 6 | # without warranty of any kind. 7 | 8 | /var/log/openvswitch/*.log { 9 | daily 10 | compress 11 | sharedscripts 12 | missingok 13 | postrotate 14 | # Tell Open vSwitch daemons to reopen their log files 15 | if [ -d /var/run/openvswitch ]; then 16 | for ctl in /var/run/openvswitch/*.ctl; do 17 | ovs-appctl -t "$ctl" vlog/reopen 2>/dev/null || : 18 | done 19 | fi 20 | endscript 21 | } 22 | -------------------------------------------------------------------------------- /rhel/etc_openvswitch_default.conf: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT THIS FILE 2 | 3 | # The following is the *default* configuration for the openvswitch user ID. 4 | # This is for backward compatibility. 5 | OVS_USER_ID="root:root" 6 | -------------------------------------------------------------------------------- /rhel/openvswitch-kmod.files: -------------------------------------------------------------------------------- 1 | %defattr(644,root,root,755) 2 | /lib/modules/%2-%1 3 | /etc/depmod.d/openvswitch.conf 4 | -------------------------------------------------------------------------------- /rhel/usr_lib_firewalld_services_ovn-central-firewall-service.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ovn-central-firewall-service 4 | Firewall service for ovn central 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /rhel/usr_lib_firewalld_services_ovn-host-firewall-service.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ovn-host-firewall-service 4 | Firewall service for ovn host 5 | 6 | 7 | -------------------------------------------------------------------------------- /rhel/usr_lib_systemd_system_openvswitch.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vSwitch 3 | Before=network.target network.service 4 | After=network-pre.target ovsdb-server.service ovs-vswitchd.service 5 | PartOf=network.target 6 | Requires=ovsdb-server.service 7 | Requires=ovs-vswitchd.service 8 | 9 | [Service] 10 | Type=oneshot 11 | ExecStart=/bin/true 12 | ExecReload=/usr/share/openvswitch/scripts/ovs-systemd-reload 13 | ExecStop=/bin/true 14 | RemainAfterExit=yes 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /rhel/usr_lib_systemd_system_ovs-delete-transient-ports.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vSwitch Delete Transient Ports 3 | After=ovsdb-server.service 4 | Before=ovs-vswitchd.service 5 | AssertPathExists=/var/run/openvswitch/db.sock 6 | 7 | [Service] 8 | Type=oneshot 9 | RemainAfterExit=yes 10 | ExecStart=/usr/share/openvswitch/scripts/ovs-ctl delete-transient-ports 11 | -------------------------------------------------------------------------------- /rhel/usr_lib_systemd_system_ovsdb-server.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vSwitch Database Unit 3 | After=syslog.target network-pre.target 4 | Before=network.target network.service 5 | Wants=ovs-delete-transient-ports.service 6 | PartOf=openvswitch.service 7 | 8 | [Service] 9 | Type=forking 10 | Restart=on-failure 11 | EnvironmentFile=/etc/openvswitch/default.conf 12 | EnvironmentFile=-/etc/sysconfig/openvswitch 13 | ExecStartPre=/usr/bin/chown ${OVS_USER_ID} /var/run/openvswitch 14 | ExecStartPre=/bin/sh -c 'rm -f /run/openvswitch/useropts; if [ "$${OVS_USER_ID/:*/}" != "root" ]; then /usr/bin/echo "OVSUSER=--ovs-user=${OVS_USER_ID}" > /run/openvswitch/useropts; fi' 15 | EnvironmentFile=-/run/openvswitch/useropts 16 | ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \ 17 | --no-ovs-vswitchd --no-monitor --system-id=random \ 18 | ${OVSUSER} \ 19 | start $OPTIONS 20 | ExecStop=/usr/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd stop 21 | ExecReload=/usr/share/openvswitch/scripts/ovs-ctl --no-ovs-vswitchd \ 22 | ${OVSUSER} \ 23 | --no-monitor restart $OPTIONS 24 | RuntimeDirectory=openvswitch 25 | RuntimeDirectoryMode=0755 26 | -------------------------------------------------------------------------------- /rhel/usr_lib_udev_rules.d_91-vfio.rules: -------------------------------------------------------------------------------- 1 | ACTION=="add", SUBSYSTEM=="vfio*", GROUP="hugetlbfs", MODE="0660" 2 | -------------------------------------------------------------------------------- /rhel/usr_share_openvswitch_scripts_sysconfig.template: -------------------------------------------------------------------------------- 1 | ### Configuration options for openvswitch 2 | 3 | # Copyright (C) 2009, 2010, 2011 Nicira, Inc. 4 | 5 | # FORCE_COREFILES: If 'yes' then core files will be enabled. 6 | # FORCE_COREFILES=yes 7 | 8 | # OVSDB_SERVER_PRIORITY: "nice" priority at which to run ovsdb-server. 9 | # 10 | # OVSDB_SERVER_PRIORITY=-10 11 | 12 | # VSWITCHD_PRIORITY: "nice" priority at which to run ovs-vswitchd. 13 | # VSWITCHD_PRIORITY=-10 14 | 15 | # VSWITCHD_MLOCKALL: Whether to pass ovs-vswitchd the --mlockall option. 16 | # This option should be set to "yes" or "no". The default is "yes". 17 | # Enabling this option can avoid networking interruptions due to 18 | # system memory pressure in extraordinary situations, such as multiple 19 | # concurrent VM import operations. 20 | # VSWITCHD_MLOCKALL=yes 21 | 22 | # OVS_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example, 23 | # a suitable place to specify --ovs-vswitchd-wrapper=valgrind. 24 | # OVS_CTL_OPTS= 25 | -------------------------------------------------------------------------------- /rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template: -------------------------------------------------------------------------------- 1 | ### Configuration options for openvswitch 2 | # 3 | # Enable core files: 4 | # --force-corefiles=yes 5 | # 6 | # Set "nice" priority at which to run ovsdb-server: 7 | # --ovsdb-server-priority=-10 8 | # 9 | # Set "nice" priority at which to run ovsdb-vswitchd: 10 | # --ovs-vswitchd-priority=-10 11 | # 12 | # Pass or not --mlockall option to ovs-vswitchd. 13 | # This option should be set to "yes" or "no". The default is "yes". 14 | # Enabling this option can avoid networking interruptions due to 15 | # system memory pressure in extraordinary situations, such as multiple 16 | # concurrent VM import operations. 17 | # --mlockall=yes 18 | # 19 | # Use valgrind: 20 | # --ovs-vswitchd-wrapper=valgrind 21 | # --ovsdb-server-wrapper=valgrind 22 | # 23 | OPTIONS="" 24 | 25 | # Uncomment and set the OVS User/Group value 26 | #OVS_USER_ID="openvswitch:openvswitch" 27 | -------------------------------------------------------------------------------- /selinux/.gitignore: -------------------------------------------------------------------------------- 1 | openvswitch-custom.te 2 | -------------------------------------------------------------------------------- /selinux/automake.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 Nicira, Inc. 2 | # 3 | # Copying and distribution of this file, with or without modification, 4 | # are permitted in any medium without royalty provided the copyright 5 | # notice and this notice are preserved. This file is offered as-is, 6 | # without warranty of any kind. 7 | 8 | EXTRA_DIST += \ 9 | selinux/openvswitch-custom.te.in 10 | -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | *.pem 2 | /Makefile 3 | /Makefile.in 4 | /atconfig 5 | /atlocal 6 | /idltest.c 7 | /idltest.h 8 | /idltest.ovsidl 9 | /ovstest 10 | /test-dpdkr 11 | /ovs-pki.log 12 | /pki/ 13 | /system-kmod-testsuite 14 | /system-bpf-testsuite 15 | /system-userspace-testsuite 16 | /system-offloads-testsuite 17 | /test-aes128 18 | /test-atomic 19 | /test-bundle 20 | /test-byte-order 21 | /test-classifier 22 | /test-csum 23 | /test-flows 24 | /test-hash 25 | /test-heap 26 | /test-hindex 27 | /test-hmap 28 | /test-json 29 | /test-jsonrpc 30 | /test-list 31 | /test-lockfile 32 | /test-multipath 33 | /test-netflow 34 | /test-odp 35 | /test-ofpbuf 36 | /test-ovsdb 37 | /test-packets 38 | /test-raft 39 | /test-random 40 | /test-reconnect 41 | /test-rstp 42 | /test-sflow 43 | /test-sha1 44 | /test-skiplist 45 | /test-stp 46 | /test-strtok_r 47 | /test-timeval 48 | /test-type-props 49 | /test-unix-socket 50 | /test-util 51 | /test-uuid 52 | /test-vconn 53 | /testsuite 54 | /testsuite.dir/ 55 | /testsuite.log 56 | /test-lib 57 | /testsuite.tmp.orig 58 | /valgrind.[0-9]* 59 | /valgrind/ 60 | -------------------------------------------------------------------------------- /tests/auto-attach.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([auto-attach unit tests]) 2 | 3 | AT_SETUP([auto-attach - packets]) 4 | AT_KEYWORDS([auto-attach]) 5 | AT_CHECK(ovstest test-aa, [], [ignore], [ignore]) 6 | 7 | AT_CLEANUP 8 | -------------------------------------------------------------------------------- /tests/glibc.supp: -------------------------------------------------------------------------------- 1 | # suppress what appear to unavoidable error reports from glibc 2 | 3 | { 4 | timer_create 5 | Memcheck:Leak 6 | fun:malloc 7 | fun:timer_create 8 | } 9 | 10 | { 11 | timer_create 12 | Memcheck:Param 13 | timer_create(evp) 14 | ... 15 | fun:set_up_timer 16 | } 17 | 18 | -------------------------------------------------------------------------------- /tests/heap.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([heap library]) 2 | 3 | m4_define([TEST_HEAP], 4 | [AT_SETUP([heap library -- m4_bpatsubst([$1], [-], [ ])]) 5 | AT_CHECK([ovstest test-heap $1]) 6 | AT_CLEANUP]) 7 | 8 | TEST_HEAP([insert-delete-same-order]) 9 | TEST_HEAP([insert-delete-reverse-order]) 10 | TEST_HEAP([insert-delete-every-order]) 11 | TEST_HEAP([insert-delete-same-order-with-dups]) 12 | TEST_HEAP([raw-insert]) 13 | TEST_HEAP([raw-delete]) 14 | -------------------------------------------------------------------------------- /tests/idltest.ann: -------------------------------------------------------------------------------- 1 | # -*- python -*- 2 | 3 | # This code, when invoked by "ovsdb-idlc annotate" (by the build 4 | # process), annotates idltest.ovsschema with additional data that give 5 | # the ovsdb-idl engine information about the types involved, so that 6 | # it can generate more programmer-friendly data structures. 7 | 8 | s["idlPrefix"] = "idltest_" 9 | s["idlHeader"] = "\"tests/idltest.h\"" 10 | -------------------------------------------------------------------------------- /tests/lib.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([Library -- basic]) 2 | 3 | AT_SETUP([successful linking]) 4 | AT_KEYWORDS([libopenvswitch]) 5 | AT_CAPTURE_FILE([log]) 6 | AT_CHECK( 7 | [test-lib], [0], 8 | [], [ignore]) 9 | AT_CLEANUP 10 | -------------------------------------------------------------------------------- /tests/netdev-type.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([netdev-type]) 2 | 3 | dnl Setting MAC address of netdev internal port fails 4 | AT_SETUP([bridge - set MAC address of internal port]) 5 | OVS_VSWITCHD_START 6 | 7 | # Add an internal port and make sure that it shows up in the datapath. 8 | add_of_ports br0 1 9 | AT_CHECK([ovs-appctl dpif/show], [0], [dnl 10 | dummy@ovs-dummy: hit:0 missed:0 11 | br0: 12 | br0 65534/100: (dummy-internal) 13 | p1 1/1: (dummy) 14 | ]) 15 | # 16 | # Set MAC address of dummy device and check that it has been set 17 | AT_CHECK([ovs-vsctl set Interface p1 type=internal mac=\"aa:55:c0:ff:ee:00\"]) 18 | AT_CHECK([ovs-vsctl get Interface p1 mac_in_use], [0], [dnl 19 | "aa:55:c0:ff:ee:00" 20 | ]) 21 | 22 | OVS_APP_EXIT_AND_WAIT([ovs-vswitchd]) 23 | OVS_APP_EXIT_AND_WAIT([ovsdb-server]) 24 | AT_CLEANUP 25 | -------------------------------------------------------------------------------- /tests/openssl.supp: -------------------------------------------------------------------------------- 1 | # suppress OpenSSL errors from valgrind 2 | 3 | { 4 | BN_mod_inverse 5 | Memcheck:Cond 6 | fun:BN_mod_inverse 7 | } 8 | 9 | { 10 | BN_div 11 | Memcheck:Cond 12 | fun:BN_div 13 | } 14 | -------------------------------------------------------------------------------- /tests/ovsdb-column.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([OVSDB -- columns]) 2 | 3 | OVSDB_CHECK_POSITIVE_CPY([ordinary column], 4 | [[parse-column mycol '{"type": "integer"}']], 5 | [[{"type":"integer"}]]) 6 | 7 | OVSDB_CHECK_POSITIVE_CPY([immutable column], 8 | [[parse-column mycol '{"type": "real", "mutable": false}']], 9 | [[{"mutable":false,"type":"real"}]]) 10 | 11 | OVSDB_CHECK_POSITIVE_CPY([ephemeral column], 12 | [[parse-column mycol '{"type": "uuid", "ephemeral": true}']], 13 | [[{"ephemeral":true,"type":"uuid"}]]) 14 | -------------------------------------------------------------------------------- /tests/ovsdb-macros.at: -------------------------------------------------------------------------------- 1 | dnl OVSDB_INIT([$1]) 2 | dnl 3 | dnl Creates an empty database named $1. 4 | m4_define([OVSDB_INIT], 5 | [AT_CHECK( 6 | [ovsdb-tool create $1 $abs_top_srcdir/vswitchd/vswitch.ovsschema], 7 | [0], [stdout], [ignore]) 8 | AT_CHECK( 9 | [[ovsdb-tool transact $1 \ 10 | '["Open_vSwitch", 11 | {"op": "insert", 12 | "table": "Open_vSwitch", 13 | "row": {}}]']], 14 | [0], [ignore], [ignore])]) 15 | -------------------------------------------------------------------------------- /tests/system-bpf-testsuite.at: -------------------------------------------------------------------------------- 1 | AT_INIT 2 | 3 | AT_COPYRIGHT([Copyright (c) 2015 Nicira, Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at: 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License.]) 16 | 17 | m4_ifdef([AT_COLOR_TESTS], [AT_COLOR_TESTS]) 18 | 19 | m4_include([tests/ovs-macros.at]) 20 | m4_include([tests/ovsdb-macros.at]) 21 | m4_include([tests/ofproto-macros.at]) 22 | m4_include([tests/system-bpf-macros.at]) 23 | m4_include([tests/system-common-macros.at]) 24 | 25 | m4_include([tests/system-bpf-traffic.at]) 26 | -------------------------------------------------------------------------------- /tests/system-bpf-testsuite.patch: -------------------------------------------------------------------------------- 1 | --- system-bpf-testsuite 2018-05-31 05:10:16.425135086 -0700 2 | +++ system-bpf-testsuite 2018-05-31 05:13:46.556051030 -0700 3 | @@ -2369,7 +2369,6 @@ 4 | else 5 | if test -d "$at_group_dir"; then 6 | find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; 7 | - rm -fr "$at_group_dir" 8 | fi 9 | rm -f "$at_test_source" 10 | fi 11 | -------------------------------------------------------------------------------- /tests/system-interface.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([system-inteface]) 2 | 3 | dnl add a veth interface to br0, then delete and re-create 4 | dnl the veth interface with the same name in the system 5 | AT_SETUP([interface - add delete add same interface]) 6 | 7 | OVS_TRAFFIC_VSWITCHD_START() 8 | 9 | AT_CHECK([ip link add ovs-veth0 type veth peer name ovs-veth1]) 10 | on_exit 'ip link del ovs-veth0' 11 | 12 | AT_CHECK([ovs-vsctl add-port br0 ovs-veth0]) 13 | 14 | AT_CHECK([ip link del ovs-veth0]) 15 | AT_CHECK([ip link add ovs-veth0 type veth peer name ovs-veth1]) 16 | 17 | AT_CHECK([ovs-vsctl del-port br0 ovs-veth0]) 18 | 19 | OVS_TRAFFIC_VSWITCHD_STOP(["dnl 20 | /could not open network device ovs-veth0/d 21 | /cannot get .*STP status on nonexistent port/d 22 | /ethtool command .*on network device ovs-veth0 failed/d 23 | /error receiving .*ovs-veth0/d 24 | /ovs-veth0: removing policing failed/d"]) 25 | 26 | AT_CLEANUP 27 | 28 | -------------------------------------------------------------------------------- /tests/system-kmod-testsuite.at: -------------------------------------------------------------------------------- 1 | AT_INIT 2 | 3 | AT_COPYRIGHT([Copyright (c) 2015 Nicira, Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at: 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License.]) 16 | 17 | m4_ifdef([AT_COLOR_TESTS], [AT_COLOR_TESTS]) 18 | 19 | m4_include([tests/ovs-macros.at]) 20 | m4_include([tests/ovsdb-macros.at]) 21 | m4_include([tests/ofproto-macros.at]) 22 | m4_include([tests/system-common-macros.at]) 23 | m4_include([tests/system-kmod-macros.at]) 24 | 25 | m4_include([tests/system-traffic.at]) 26 | m4_include([tests/system-layer3-tunnels.at]) 27 | m4_include([tests/system-ovn.at]) 28 | m4_include([tests/system-interface.at]) 29 | -------------------------------------------------------------------------------- /tests/system-offloads-testsuite.at: -------------------------------------------------------------------------------- 1 | AT_INIT 2 | 3 | AT_COPYRIGHT([Copyright (c) 2016 Mellanox Technologies, Ltd. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at: 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License.]) 16 | 17 | m4_ifdef([AT_COLOR_TESTS], [AT_COLOR_TESTS]) 18 | 19 | m4_include([tests/ovs-macros.at]) 20 | m4_include([tests/ovsdb-macros.at]) 21 | m4_include([tests/ofproto-macros.at]) 22 | m4_include([tests/system-common-macros.at]) 23 | m4_include([tests/system-kmod-macros.at]) 24 | 25 | m4_include([tests/system-offloads-traffic.at]) 26 | -------------------------------------------------------------------------------- /tests/system-userspace-testsuite.at: -------------------------------------------------------------------------------- 1 | AT_INIT 2 | 3 | AT_COPYRIGHT([Copyright (c) 2015 Nicira, Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at: 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License.]) 16 | 17 | m4_ifdef([AT_COLOR_TESTS], [AT_COLOR_TESTS]) 18 | 19 | m4_include([tests/ovs-macros.at]) 20 | m4_include([tests/ovsdb-macros.at]) 21 | m4_include([tests/ofproto-macros.at]) 22 | m4_include([tests/system-userspace-macros.at]) 23 | m4_include([tests/system-common-macros.at]) 24 | 25 | m4_include([tests/system-traffic.at]) 26 | m4_include([tests/system-layer3-tunnels.at]) 27 | m4_include([tests/system-ovn.at]) 28 | m4_include([tests/system-interface.at]) 29 | m4_include([tests/system-userspace-packet-type-aware.at]) 30 | -------------------------------------------------------------------------------- /tests/uuid.at: -------------------------------------------------------------------------------- 1 | AT_BANNER([UUID unit tests]) 2 | 3 | m4_define([UUID_REGEX], 4 | [[[0-9a-f]\{8\}-[0-9a-f]\{4\}-4[0-9a-f]\{3\}-[89ab][0-9a-f]\{3\}-[0-9a-f]\{12\}$]]) 5 | 6 | m4_define([CHECK_UUID], 7 | [if expr "$uuid" : 'UUID_REGEX' > /dev/null 8 | then 9 | : 10 | else 11 | echo "$uuid: not a random UUID" 12 | exit 1 13 | fi]) 14 | 15 | AT_SETUP([UUID generation, parsing, serialization]) 16 | AT_KEYWORDS([UUID]) 17 | AT_CHECK([ 18 | uuids= 19 | for i in m4_for([count], [1], [100], [1], [count ]); do 20 | # Generate random UUID and check that it is in the expected format. 21 | uuid=`ovstest test-uuid` 22 | CHECK_UUID 23 | 24 | # Verify that $uuid does not duplicate any UUID generated so far. 25 | case $uuids in 26 | *$uuid*) 27 | echo "$uuid: generated duplicate UUID" 28 | exit 1 29 | esac 30 | uuids="$uuids $uuid" 31 | 32 | # Verify that test-uuid parses and re-serializes this UUID correctly. 33 | serialized=`ovstest test-uuid $uuid` 34 | if test "$uuid" != "$serialized"; then 35 | echo "$uuid: test-uuid serialized this as $serialized" 36 | exit 1 37 | fi 38 | done], [0]) 39 | AT_CLEANUP 40 | -------------------------------------------------------------------------------- /tests/valgrind-wrapper.in: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | wrap_program=`basename '@wrap_program@'` 4 | 5 | # Strip the first directory from $PATH that contains $wrap_program, 6 | # so that below we run the real $wrap_program, not ourselves. 7 | not_found=true 8 | new_path= 9 | first=true 10 | save_IFS=$IFS 11 | IFS=: 12 | for dir in $PATH; do 13 | IFS=$save_IFS 14 | if $not_found && test -x "$dir/$wrap_program"; then 15 | not_found=false 16 | else 17 | if $first; then 18 | first=false 19 | new_path=$dir 20 | else 21 | new_path=$new_path:$dir 22 | fi 23 | fi 24 | done 25 | IFS=$save_IFS 26 | if $not_found; then 27 | echo "$0: error: cannot find $wrap_program in \$PATH" >&2 28 | exit 1 29 | fi 30 | PATH=$new_path 31 | export PATH 32 | 33 | : ${VALGRIND:=valgrind -q --log-file=valgrind.%p --leak-check=full} 34 | exec $VALGRIND $wrap_program "$@" 35 | echo "$0: failed to execute $VALGRIND $wrap_program" "$@" >&2 36 | exit 1 37 | -------------------------------------------------------------------------------- /tests/vconn.at: -------------------------------------------------------------------------------- 1 | m4_define([TEST_VCONN_CLASS], 2 | [AT_BANNER([vconn library -- $1 class]) 3 | m4_foreach( 4 | [testname], 5 | [[refuse-connection], 6 | [accept-then-close], 7 | [read-hello], 8 | [send-plain-hello], 9 | [send-long-hello], 10 | [send-echo-hello], 11 | [send-short-hello], 12 | [send-invalid-version-hello]], 13 | [AT_SETUP([$1 vconn - m4_bpatsubst(testname, [-], [ ])]) 14 | m4_if([$1], [ssl], [ 15 | AT_SKIP_IF([test "$HAVE_OPENSSL" = no]) 16 | AT_CHECK([cp $abs_top_builddir/tests/testpki*.pem .])]) 17 | AT_CHECK([ovstest test-vconn testname $1], [0], [], [ignore]) 18 | AT_CLEANUP])]) 19 | 20 | TEST_VCONN_CLASS([unix]) 21 | TEST_VCONN_CLASS([tcp]) 22 | TEST_VCONN_CLASS([ssl]) 23 | -------------------------------------------------------------------------------- /third-party/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | -------------------------------------------------------------------------------- /third-party/automake.mk: -------------------------------------------------------------------------------- 1 | EXTRA_DIST += \ 2 | third-party/ofp-tcpdump.patch \ 3 | third-party/README.rst 4 | -------------------------------------------------------------------------------- /tutorial/.gitignore: -------------------------------------------------------------------------------- 1 | sandbox/ 2 | -------------------------------------------------------------------------------- /tutorial/automake.mk: -------------------------------------------------------------------------------- 1 | EXTRA_DIST += \ 2 | tutorial/ovs-sandbox \ 3 | tutorial/t-setup \ 4 | tutorial/t-stage0 \ 5 | tutorial/t-stage1 \ 6 | tutorial/t-stage2 \ 7 | tutorial/t-stage3 \ 8 | tutorial/t-stage4 \ 9 | tutorial/ovn-setup.sh 10 | sandbox: all 11 | cd $(srcdir)/tutorial && MAKE=$(MAKE) HAVE_OPENSSL=$(HAVE_OPENSSL) \ 12 | ./ovs-sandbox -b $(abs_builddir) $(SANDBOXFLAGS) 13 | -------------------------------------------------------------------------------- /tutorial/t-setup: -------------------------------------------------------------------------------- 1 | #! /bin/sh -ve 2 | 3 | ovs-vsctl add-br br0 -- set Bridge br0 fail-mode=secure 4 | 5 | for i in 1 2 3 4; do 6 | ovs-vsctl add-port br0 p$i -- set Interface p$i ofport_request=$i 7 | ovs-ofctl mod-port br0 p$i up 8 | done 9 | -------------------------------------------------------------------------------- /tutorial/t-stage0: -------------------------------------------------------------------------------- 1 | #! /bin/sh -ve 2 | 3 | ovs-ofctl add-flow br0 \ 4 | "table=0, dl_src=01:00:00:00:00:00/01:00:00:00:00:00, actions=drop" 5 | 6 | ovs-ofctl add-flow br0 \ 7 | "table=0, dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0, actions=drop" 8 | 9 | ovs-ofctl add-flow br0 "table=0, priority=0, actions=resubmit(,1)" 10 | -------------------------------------------------------------------------------- /tutorial/t-stage1: -------------------------------------------------------------------------------- 1 | #! /bin/sh -ve 2 | 3 | ovs-ofctl add-flow br0 "table=1, priority=0, actions=drop" 4 | 5 | ovs-ofctl add-flow br0 \ 6 | "table=1, priority=99, in_port=1, actions=resubmit(,2)" 7 | 8 | ovs-ofctl add-flows br0 - <<'EOF' 9 | table=1, priority=99, in_port=2, vlan_tci=0, actions=mod_vlan_vid:20, resubmit(,2) 10 | table=1, priority=99, in_port=3, vlan_tci=0, actions=mod_vlan_vid:30, resubmit(,2) 11 | table=1, priority=99, in_port=4, vlan_tci=0, actions=mod_vlan_vid:30, resubmit(,2) 12 | EOF 13 | -------------------------------------------------------------------------------- /tutorial/t-stage2: -------------------------------------------------------------------------------- 1 | #! /bin/sh -ve 2 | 3 | ovs-ofctl add-flow br0 \ 4 | "table=2 actions=learn(table=10, NXM_OF_VLAN_TCI[0..11], \ 5 | NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], \ 6 | load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15]), \ 7 | resubmit(,3)" 8 | -------------------------------------------------------------------------------- /tutorial/t-stage3: -------------------------------------------------------------------------------- 1 | #! /bin/sh -ve 2 | 3 | ovs-ofctl add-flow br0 \ 4 | "table=3 priority=50 actions=resubmit(,10), resubmit(,4)" 5 | 6 | ovs-ofctl add-flow br0 \ 7 | "table=3 priority=99 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 \ 8 | actions=resubmit(,4)" 9 | -------------------------------------------------------------------------------- /tutorial/t-stage4: -------------------------------------------------------------------------------- 1 | #! /bin/sh -ve 2 | 3 | ovs-ofctl add-flow br0 "table=4 reg0=1 actions=1" 4 | 5 | ovs-ofctl add-flows br0 - <<'EOF' 6 | table=4 reg0=2 actions=strip_vlan,2 7 | table=4 reg0=3 actions=strip_vlan,3 8 | table=4 reg0=4 actions=strip_vlan,4 9 | EOF 10 | 11 | ovs-ofctl add-flows br0 - <<'EOF' 12 | table=4 reg0=0 priority=99 dl_vlan=20 actions=1,strip_vlan,2 13 | table=4 reg0=0 priority=99 dl_vlan=30 actions=1,strip_vlan,3,4 14 | table=4 reg0=0 priority=50 actions=1 15 | EOF 16 | -------------------------------------------------------------------------------- /utilities/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /nlmon 4 | /ovs-appctl 5 | /ovs-appctl.8 6 | /ovs-cfg-mod 7 | /ovs-cfg-mod.8 8 | /ovs-check-dead-ifs 9 | /ovs-testcontroller 10 | /ovs-testcontroller.8 11 | /ovs-ctl 12 | /ovs-dpctl 13 | /ovs-dpctl.8 14 | /ovs-dpctl-top 15 | /ovs-dpctl-top.8 16 | /ovs-l3ping 17 | /ovs-l3ping.8 18 | /ovs-lib 19 | /ovs-ofctl 20 | /ovs-ofctl.8 21 | /ovs-parse-backtrace 22 | /ovs-pcap 23 | /ovs-pcap.1 24 | /ovs-pki 25 | /ovs-pki-cgi 26 | /ovs-pki.8 27 | /ovs-test 28 | /ovs-test.8 29 | /ovs-tcpdump 30 | /ovs-tcpdump.8 31 | /ovs-tcpundump 32 | /ovs-tcpundump.1 33 | /ovs-vlan-bug-workaround 34 | /ovs-vlan-bug-workaround.8 35 | /ovs-vlan-test 36 | /ovs-vlan-test.8 37 | /ovs-vsctl 38 | /ovs-vsctl.8 39 | /ovs-sim 40 | /ovs-sim.1 41 | -------------------------------------------------------------------------------- /utilities/bugtool/.gitignore: -------------------------------------------------------------------------------- 1 | /ovs-bugtool 2 | /ovs-bugtool.8 3 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-daemons-ver: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2012 Nicira, Inc. 18 | 19 | for f in `cd /var/run/openvswitch/; ls *.pid 2>/dev/null` 20 | do 21 | if [ -n "${f%.pid}" ]; then 22 | ovs-appctl -t "${f%.pid}" version 2>&1 23 | fi 24 | echo 25 | done 26 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-fdb-show: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2014 Nicira, Inc. 18 | 19 | for bridge in `ovs-vsctl -- --real list-br` 20 | do 21 | echo "ovs-appctl fdb/show ${bridge}" 22 | ovs-appctl fdb/show "${bridge}" 23 | echo "" 24 | done 25 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-get-dpdk-nic-numa: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2017 Ericsson AB 18 | 19 | for PCI_ADDRESS in $(lspci -D | cut -d' ' -f1) 20 | do 21 | if [ -n "$(find /sys/bus/pci/drivers | grep drivers.*$PCI_ADDRESS | grep -e uio_pci_generic -e igb_uio -e vfio-pci)" ] 22 | then 23 | grep -H "" $(find /sys/devices/ -path "*$PCI_ADDRESS*numa_node") 24 | fi 25 | done 26 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-ovs-appctl-dpif: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2013 Nicira, Inc. 18 | 19 | echo "ovs-appctl dpif/show" 20 | ovs-appctl dpif/show 21 | for bridge in `ovs-vsctl -- --real list-br` 22 | do 23 | echo "ovs-appctl dpif/dump-flows -m ${bridge}" 24 | ovs-appctl dpif/dump-flows -m "$bridge" 25 | echo "" 26 | done 27 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-ovs-bridge-datapath-type: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2017 Ericsson AB 18 | 19 | for br in `ovs-vsctl -- --real list-br` 20 | do 21 | echo bridge $br datapath_type=$(ovs-vsctl get bridge $br datapath_type) 22 | done 23 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-ovs-vswitchd-threads-affinity: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2017 Ericsson AB 18 | 19 | for pid in $(pgrep ovs-vswitchd) 20 | do 21 | for i in $(ls /proc/$pid/task) 22 | do 23 | taskset -pc $i 24 | done 25 | done 26 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-qos-configs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2017 Ericsson AB 18 | 19 | for br in `ovs-vsctl -- --real list-br` 20 | do 21 | for iface in $(ovs-vsctl list-ifaces ${br}) 22 | do 23 | echo "Rate limiting configuration for ${iface} (of ${br}):" 24 | ovs-vsctl list interface ${iface} | grep ingress 25 | echo "Interface options:" 26 | ovs-vsctl get Interface ${iface} options 27 | echo "" 28 | done 29 | done 30 | -------------------------------------------------------------------------------- /utilities/bugtool/ovs-bugtool-tc-class-show: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of version 2.1 of the GNU Lesser General 5 | # Public License as published by the Free Software Foundation. 6 | # 7 | # This library is distributed in the hope that it will be useful, 8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 | # Lesser General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU Lesser General Public 13 | # License along with this library; if not, write to the Free Software 14 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 15 | # USA 16 | # 17 | # Copyright (C) 2011 Nicira, Inc. 18 | 19 | for iface in $(cd /sys/class/net && echo *); do 20 | if [ -d /sys/class/net/$iface ]; then 21 | echo Interface $iface: 22 | # indent tc output so it's clear which interface it pertains to 23 | /sbin/tc -s -d class show dev $iface | /bin/sed 's/^/ /' 24 | fi 25 | done 26 | -------------------------------------------------------------------------------- /utilities/bugtool/plugins/kernel-info/openvswitch.xml: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | /proc/slabinfo 22 | 23 | 24 | -------------------------------------------------------------------------------- /utilities/bugtool/plugins/system-configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 20 | 22 | -------------------------------------------------------------------------------- /utilities/ovs-parse-backtrace.8: -------------------------------------------------------------------------------- 1 | .TH ovs\-parse\-backtrace 8 "October 2012" "Open vSwitch" "Open vSwitch Manual" 2 | . 3 | .SH NAME 4 | ovs\-parse\-backtrace \- parses ovs-appctl backtrace output 5 | . 6 | .SH SYNOPSIS 7 | \fBovs\-appctl backtrace\fR | \fBovs\-parse\-backtrace\fR [\fIbinary\fR] 8 | .P 9 | \fBovs\-parse\-backtrace\fR [\fIbinary\fR] < \fIbacktrace\fR 10 | . 11 | .SH DESCRIPTION 12 | In some configurations, many Open vSwitch daemons can produce a series of 13 | backtraces using the \fBovs\-appctl backtrace\fR command. Users can analyze 14 | these backtraces to figure out what the given Open vSwitch daemon may be 15 | spending most of its time doing. \fBovs\-parse\-backtrace\fR makes this output 16 | easier to interpret. 17 | .PP 18 | The \fBovs\-appctl backtrace\fR output must be supplied on standard input. The 19 | binary that produced the output should be supplied as the sole non-option 20 | argument. For best results, the binary should have debug symbols. 21 | . 22 | .SH OPTIONS 23 | .TP 24 | \fB\-\-help\fR 25 | Prints a usage message and exits. 26 | .P 27 | \fB\-\-version\fR 28 | Prints the version and exits. 29 | -------------------------------------------------------------------------------- /utilities/ovs-pcap.1.in: -------------------------------------------------------------------------------- 1 | .TH ovs\-pcap 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual" 2 | . 3 | .SH NAME 4 | ovs\-pcap \- print packets from a pcap file as hex 5 | . 6 | .SH SYNOPSIS 7 | \fBovs\-pcap\fR \fIfile\fR 8 | .so lib/common-syn.man 9 | . 10 | .SH DESCRIPTION 11 | The \fBovs\-pcap\fR program reads the pcap \fIfile\fR named on the 12 | command line and prints each packet's contents as a sequence of hex 13 | digits on a line of its own. This format is suitable for use with the 14 | \fBofproto/trace\fR command supported by \fBovs\-vswitchd\fR(8). 15 | . 16 | .SH "OPTIONS" 17 | .so lib/common.man 18 | . 19 | .SH "SEE ALSO" 20 | . 21 | .BR ovs\-vswitchd (8), 22 | .BR ovs\-tcpundump (1), 23 | .BR tcpdump (8), 24 | .BR wireshark (8). 25 | -------------------------------------------------------------------------------- /utilities/ovs-tcpundump.1.in: -------------------------------------------------------------------------------- 1 | .TH ovs\-tcpundump 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual" 2 | . 3 | .SH NAME 4 | ovs\-tcpundump \- convert ``tcpdump \-xx'' output to hex strings 5 | . 6 | .SH SYNOPSIS 7 | \fBovs\-tcpundump < \fIfile\fR 8 | .so lib/common-syn.man 9 | . 10 | .SH DESCRIPTION 11 | The \fBovs\-tcpundump\fR program reads \fBtcpdump \-xx\fR output on 12 | stdin, looking for hexadecimal packet data, and dumps each Ethernet as 13 | a single hexadecimal string on stdout. This format is suitable for 14 | use with the \fBofproto/trace\fR command supported by 15 | \fBovs\-vswitchd\fR(8) 16 | via \fBovs\-appctl\fR(8). 17 | .PP 18 | At least two \fB\-x\fR or \fB\-X\fR options must be given, otherwise 19 | the output will omit the Ethernet header, which prevents the output 20 | from being using with \fBofproto/trace\fR. 21 | . 22 | .SH "OPTIONS" 23 | .so lib/common.man 24 | . 25 | .SH "SEE ALSO" 26 | . 27 | .BR ovs\-appctl (8), 28 | .BR ovs\-vswitchd (8), 29 | .BR ovs\-pcap (1), 30 | .BR tcpdump (8), 31 | .BR wireshark (8). 32 | -------------------------------------------------------------------------------- /utilities/ovs-vlan-bugs.man: -------------------------------------------------------------------------------- 1 | .IP \(bu 2 | When NICs use VLAN stripping on receive they must pass a pointer to a 3 | \fBvlan_group\fR when reporting the stripped tag to the networking 4 | core. If no \fBvlan_group\fR is in use then some drivers just drop 5 | the extracted tag. Drivers are supposed to only enable stripping if a 6 | \fBvlan_group\fR is registered but not all of them do that. 7 | . 8 | .IP \(bu 9 | On receive, some drivers handle priority tagged packets specially and 10 | don't pass the tag onto the network stack at all, so Open vSwitch 11 | never has a chance to see it. 12 | . 13 | .IP \(bu 14 | Some drivers size their receive buffers based on whether a 15 | \fBvlan_group\fR is enabled, meaning that a maximum size packet with a 16 | VLAN tag will not fit if no \fBvlan_group\fR is configured. 17 | . 18 | .IP \(bu 19 | On transmit, some drivers expect that VLAN acceleration will be used 20 | if it is available, which can only be done if a \fBvlan_group\fR is 21 | configured. In these cases, the driver may fail to parse the packet 22 | and correctly setup checksum offloading or TSO. 23 | -------------------------------------------------------------------------------- /vswitchd/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /ovs-vswitchd 4 | /ovs-vswitchd.8 5 | /ovs-vswitchd.conf.db.5 6 | /vswitch.ovsschema.stamp 7 | /vswitch.gv 8 | /vswitch.pic 9 | -------------------------------------------------------------------------------- /vswitchd/bridge.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2014 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef VSWITCHD_BRIDGE_H 17 | #define VSWITCHD_BRIDGE_H 1 18 | 19 | #include 20 | 21 | struct simap; 22 | 23 | void bridge_init(const char *remote); 24 | void bridge_exit(bool delete_datapath); 25 | 26 | void bridge_run(void); 27 | void bridge_wait(void); 28 | 29 | void bridge_get_memory_usage(struct simap *usage); 30 | 31 | #endif /* bridge.h */ 32 | -------------------------------------------------------------------------------- /vswitchd/system-stats.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2010, 2012 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef VSWITCHD_SYSTEM_STATS 17 | #define VSWITCHD_SYSTEM_STATS 1 18 | 19 | #include 20 | 21 | void system_stats_enable(bool enable); 22 | struct smap *system_stats_run(void); 23 | void system_stats_wait(void); 24 | 25 | #endif /* vswitchd/system-stats.h */ 26 | -------------------------------------------------------------------------------- /vswitchd/xenserver.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2009 Nicira, Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at: 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #ifndef VSWITCHD_XENSERVER_H 17 | #define VSWITCHD_XENSERVER_H 1 18 | 19 | const char *xenserver_get_host_uuid(void); 20 | 21 | #endif /* xenserver.h */ 22 | -------------------------------------------------------------------------------- /vtep/.gitignore: -------------------------------------------------------------------------------- 1 | /Makefile 2 | /Makefile.in 3 | /ovs-vtep 4 | /vtep-ctl 5 | /vtep-ctl.8 6 | /vtep-idl.c 7 | /vtep-idl.h 8 | /vtep-idl.ovsidl 9 | /vtep.5 10 | /vtep.gv 11 | /vtep.ovsschema.stamp 12 | /vtep.pic 13 | -------------------------------------------------------------------------------- /vtep/libvtep.sym.in: -------------------------------------------------------------------------------- 1 | libvtep_@LT_CURRENT@ { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /vtep/vtep-idl.ann: -------------------------------------------------------------------------------- 1 | # -*- python -*- 2 | 3 | # This code, when invoked by "ovsdb-idlc annotate" (by the build 4 | # process), annotates vswitch.ovsschema with additional data that give 5 | # the ovsdb-idl engine information about the types involved, so that 6 | # it can generate more programmer-friendly data structures. 7 | 8 | s["idlPrefix"] = "vteprec_" 9 | s["idlHeader"] = "\"vtep/vtep-idl.h\"" 10 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.31101.0 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "ovs-windows-installer", "ovs-windows-installer\ovs-windows-installer.wixproj", "{259905A2-7434-4190-8A33-8FBA67171DD6}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x64 = Release|x64 10 | Release|x86 = Release|x86 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {259905A2-7434-4190-8A33-8FBA67171DD6}.Release|x64.ActiveCfg = Release|x64 14 | {259905A2-7434-4190-8A33-8FBA67171DD6}.Release|x64.Build.0 = Release|x64 15 | {259905A2-7434-4190-8A33-8FBA67171DD6}.Release|x86.ActiveCfg = Release|x86 16 | {259905A2-7434-4190-8A33-8FBA67171DD6}.Release|x86.Build.0 = Release|x86 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Binaries/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Driver/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | !Win8 5 | !Win8.1 6 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Driver/Win8.1/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Driver/Win8/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Redist/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Services/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/Symbols/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /windows/ovs-windows-installer/images/bannrbmp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/windows/ovs-windows-installer/images/bannrbmp.bmp -------------------------------------------------------------------------------- /windows/ovs-windows-installer/images/dlgbmp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/williamtu/ovs-ebpf/8890b714cbbe4781e5a130d144908b1cebec9740/windows/ovs-windows-installer/images/dlgbmp.bmp -------------------------------------------------------------------------------- /xenserver/.gitignore: -------------------------------------------------------------------------------- 1 | /openvswitch-xen.spec 2 | -------------------------------------------------------------------------------- /xenserver/etc_logrotate.d_openvswitch: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009, 2010, 2011, 2012, 2017 Nicira, Inc. 2 | # 3 | # Copying and distribution of this file, with or without modification, 4 | # are permitted in any medium without royalty provided the copyright 5 | # notice and this notice are preserved. This file is offered as-is, 6 | # without warranty of any kind. 7 | 8 | /var/log/openvswitch/*.log { 9 | daily 10 | compress 11 | sharedscripts 12 | missingok 13 | postrotate 14 | # Tell Open vSwitch daemons to reopen their log files 15 | if [ -d /var/run/openvswitch ]; then 16 | for pidfile in `cd /var/run/openvswitch && echo *.pid`; do 17 | ovs-appctl -t "${pidfile%%.pid}" vlog/reopen 2>/dev/null || : 18 | done 19 | fi 20 | endscript 21 | } 22 | -------------------------------------------------------------------------------- /xenserver/usr_share_openvswitch_scripts_sysconfig.template: -------------------------------------------------------------------------------- 1 | ### Configuration options for openvswitch 2 | 3 | # Copyright (C) 2009, 2010, 2011 Nicira, Inc. 4 | 5 | # FORCE_COREFILES: If 'yes' then core files will be enabled. 6 | # FORCE_COREFILES=yes 7 | 8 | # OVSDB_SERVER_PRIORITY: "nice" priority at which to run ovsdb-server. 9 | # 10 | # OVSDB_SERVER_PRIORITY=-10 11 | 12 | # VSWITCHD_PRIORITY: "nice" priority at which to run ovs-vswitchd. 13 | # VSWITCHD_PRIORITY=-10 14 | 15 | # VSWITCHD_MLOCKALL: Whether to pass ovs-vswitchd the --mlockall option. 16 | # This option should be set to "yes" or "no". The default is "yes". 17 | # Enabling this option can avoid networking interruptions due to 18 | # system memory pressure in extraordinary situations, such as multiple 19 | # concurrent VM import operations. 20 | # VSWITCHD_MLOCKALL=yes 21 | 22 | # OVS_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example, 23 | # a suitable place to specify --ovs-vswitchd-wrapper=valgrind. 24 | # OVS_CTL_OPTS= 25 | --------------------------------------------------------------------------------