From 9b80f761bed9a32c1b0eb22ee3361966057ea973 Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Fri, 9 Mar 2012 09:55:45 -0800 Subject: [PATCH] datapath: omit _mod from module names This renames the datapath modules: openvswitch_mod -> openvswitch brcompat_mod -> brcompat The first makes the module name consistent with upstream, and the latter is just for internal consistency. This makes tools, and documentation refer to a common module name regardless if it's coming from upstream linux or built from datapath/ as part of a local build. Signed-off-by: Chris Wright Signed-off-by: Jesse Gross --- INSTALL.Linux | 14 ++++++------ INSTALL.XenServer | 2 +- INSTALL.bridge | 4 ++-- NEWS | 2 ++ datapath/brcompat_main.c | 4 ++-- datapath/compat.h | 8 +++---- datapath/linux/Kbuild.in | 4 ++-- datapath/linux/Makefile.main.in | 2 +- datapath/linux/compat/genetlink-brcompat.c | 2 +- datapath/vport-netdev.c | 2 +- debian/dkms.conf.in | 4 ++-- utilities/ovs-ctl.8 | 4 ++-- utilities/ovs-ctl.in | 26 +++++++++++++--------- vswitchd/ovs-brcompatd.8.in | 2 +- vswitchd/ovs-brcompatd.c | 2 +- xenserver/openvswitch-xen.spec.in | 8 +++---- 16 files changed, 49 insertions(+), 41 deletions(-) diff --git a/INSTALL.Linux b/INSTALL.Linux index da992b57..c0b07d52 100644 --- a/INSTALL.Linux +++ b/INSTALL.Linux @@ -194,16 +194,16 @@ Prerequisites section, follow the procedure below to build. 6. If you built kernel modules, you may load them with "insmod", e.g.: - % insmod datapath/linux/openvswitch_mod.ko + % insmod datapath/linux/openvswitch.ko You may need to specify a full path to insmod, e.g. /sbin/insmod. To verify that the modules have been loaded, run "/sbin/lsmod" and - check that openvswitch_mod is listed. + check that openvswitch is listed. If the "insmod" operation fails, look at the last few kernel log messages (e.g. with "dmesg | tail"): - - The message "openvswitch_mod: exports duplicate symbol + - The message "openvswitch: exports duplicate symbol br_should_route_hook (owned by bridge)" means that the bridge module is loaded. Run "/sbin/rmmod bridge" to remove it. @@ -212,7 +212,7 @@ Prerequisites section, follow the procedure below to build. the kernel, rather than as a module. Open vSwitch does not support this configuration (see "Build Requirements", above). - - The message "openvswitch_mod: exports duplicate symbol + - The message "openvswitch: exports duplicate symbol dp_ioctl_hook (owned by ofdatapath)" means that the ofdatapath module from the OpenFlow reference implementation is loaded. Run "/sbin/rmmod ofdatapath" to remove it. (You might have to @@ -222,10 +222,10 @@ Prerequisites section, follow the procedure below to build. - Otherwise, the most likely problem is that Open vSwitch was built for a kernel different from the one into which you are - trying to load it. Run "modinfo" on openvswitch_mod.ko and on + trying to load it. Run "modinfo" on openvswitch.ko and on a module built for the running kernel, e.g.: - % /sbin/modinfo openvswitch_mod.ko + % /sbin/modinfo openvswitch.ko % /sbin/modinfo /lib/modules/`uname -r`/kernel/net/bridge/bridge.ko Compare the "vermagic" lines output by the two commands. If @@ -235,7 +235,7 @@ Prerequisites section, follow the procedure below to build. module loading, please include the output from the "dmesg" and "modinfo" commands mentioned above. - There is an optional module parameter to openvswitch_mod.ko called + There is an optional module parameter to openvswitch.ko called vlan_tso that enables TCP segmentation offload over VLANs on NICs that support it. Many drivers do not expose support for TSO on VLANs in a way that Open vSwitch can use but there is no way to detect diff --git a/INSTALL.XenServer b/INSTALL.XenServer index 02c9a66f..e45d5bca 100644 --- a/INSTALL.XenServer +++ b/INSTALL.XenServer @@ -105,7 +105,7 @@ When Open vSwitch is installed on XenServer, its startup script /etc/init.d/openvswitch runs early in boot. It does roughly the following: - * Loads the OVS kernel module, openvswitch_mod. + * Loads the OVS kernel module, openvswitch. * Starts ovsdb-server, the OVS configuration database. diff --git a/INSTALL.bridge b/INSTALL.bridge index 8080625b..dec09d8d 100644 --- a/INSTALL.bridge +++ b/INSTALL.bridge @@ -34,9 +34,9 @@ kernel bridge module. 2. Load the brcompat kernel module (which was built in step 1), e.g.: - % insmod datapath/linux/brcompat_mod.ko + % insmod datapath/linux/brcompat.ko - (openvswitch_mod.ko should already have been loaded.) + (openvswitch.ko should already have been loaded.) 3. Start ovs-brcompatd: diff --git a/NEWS b/NEWS index dce30d23..a1e3e1b0 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ post-v1.6.0 ------------------------ + - kernel modules are renamed. openvswitch_mod.ko is now + openvswitch.ko and brcompat_mod.ko is now brcompat.ko. v1.6.0 - xx xxx xxxx diff --git a/datapath/brcompat_main.c b/datapath/brcompat_main.c index d4a0acad..5d0f0bba 100644 --- a/datapath/brcompat_main.c +++ b/datapath/brcompat_main.c @@ -523,7 +523,7 @@ static int __init brc_init(void) /* Set the bridge ioctl handler */ brioctl_set(brc_ioctl_deviceless_stub); - /* Set the openvswitch_mod device ioctl handler */ + /* Set the openvswitch device ioctl handler */ ovs_dp_ioctl_hook = brc_dev_ioctl; /* Randomize the initial sequence number. This is not a security @@ -572,7 +572,7 @@ MODULE_LICENSE("GPL"); /* * In kernels 2.6.36 and later, Open vSwitch can safely coexist with * the Linux bridge module, but it does not make sense to load both bridge and - * brcompat_mod, so this prevents it. + * brcompat, so this prevents it. */ BRIDGE_MUTUAL_EXCLUSION; #endif diff --git a/datapath/compat.h b/datapath/compat.h index fd757f1a..71fa06c1 100644 --- a/datapath/compat.h +++ b/datapath/compat.h @@ -58,12 +58,12 @@ static inline void skb_clear_rxhash(struct sk_buff *skb) * exporting br_should_route_hook. Because the bridge module also exports the * same symbol, the module loader will refuse to load both modules at the same * time (e.g. "bridge: exports duplicate symbol br_should_route_hook (owned by - * openvswitch_mod)"). + * openvswitch)"). * * Before Linux 2.6.36, Open vSwitch cannot safely coexist with the Linux - * bridge module, so openvswitch_mod uses this macro in those versions. In - * Linux 2.6.36 and later, Open vSwitch can coexist with the bridge module, but - * it makes no sense to load both bridge and brcompat_mod, so brcompat_mod uses + * bridge module, so openvswitch uses this macro in those versions. In + * Linux 2.6.36 and later, Open vSwitch can coexist with the bridge module, + * but it makes no sense to load both bridge and brcompat, so brcompat uses * this macro in those versions. * * The use of "typeof" here avoids the need to track changes in the type of diff --git a/datapath/linux/Kbuild.in b/datapath/linux/Kbuild.in index 07d106dd..d82cb002 100644 --- a/datapath/linux/Kbuild.in +++ b/datapath/linux/Kbuild.in @@ -24,10 +24,10 @@ EXTRA_CFLAGS += -include $(builddir)/kcompat.h # right place, even though it's conceptually incorrect. NOSTDINC_FLAGS += -I$(top_srcdir)/include -I$(srcdir)/compat -I$(srcdir)/compat/include -obj-m := $(patsubst %,%_mod.o,$(build_modules)) +obj-m := $(patsubst %,%.o,$(build_modules)) define module_template -$(1)_mod-y = $$(notdir $$(patsubst %.c,%.o,$($(1)_sources))) +$(1)-y = $$(notdir $$(patsubst %.c,%.o,$($(1)_sources))) endef $(foreach module,$(build_modules),$(eval $(call module_template,$(module)))) diff --git a/datapath/linux/Makefile.main.in b/datapath/linux/Makefile.main.in index 0302fc65..b55fc957 100644 --- a/datapath/linux/Makefile.main.in +++ b/datapath/linux/Makefile.main.in @@ -29,7 +29,7 @@ check: all installcheck: mostlyclean: clean: - rm -f *.o *.ko *_mod.* Module.symvers *.cmd kcompat.h.new + rm -f *.o *.ko *.mod.* Module.symvers *.cmd kcompat.h.new for d in $(build_links); do if test -h $$d; then rm $$d; fi; done distclean: clean rm -f kcompat.h diff --git a/datapath/linux/compat/genetlink-brcompat.c b/datapath/linux/compat/genetlink-brcompat.c index 31108cda..ed3a4bb8 100644 --- a/datapath/linux/compat/genetlink-brcompat.c +++ b/datapath/linux/compat/genetlink-brcompat.c @@ -1,5 +1,5 @@ /* We fix grp->id to 32 so that it doesn't collide with any of the multicast - * groups selected by openvswitch_mod, which uses groups 16 through 31. + * groups selected by openvswitch, which uses groups 16 through 31. * Collision isn't fatal--multicast listeners should check that the family is * the one that they want and discard others--but it wastes time and memory to * receive unwanted messages. */ diff --git a/datapath/vport-netdev.c b/datapath/vport-netdev.c index 12a34942..05d7696f 100644 --- a/datapath/vport-netdev.c +++ b/datapath/vport-netdev.c @@ -423,7 +423,7 @@ const struct vport_ops ovs_netdev_vport_ops = { * In kernels earlier than 2.6.36, Open vSwitch cannot safely coexist with the * Linux bridge module, because there is only a single bridge hook function and * only a single br_port member in struct net_device, so this prevents loading - * both bridge and openvswitch_mod at the same time. + * both bridge and openvswitch at the same time. */ BRIDGE_MUTUAL_EXCLUSION; #endif diff --git a/debian/dkms.conf.in b/debian/dkms.conf.in index d5bc37ed..eaf05417 100644 --- a/debian/dkms.conf.in +++ b/debian/dkms.conf.in @@ -1,8 +1,8 @@ PACKAGE_NAME="openvswitch" PACKAGE_VERSION="__VERSION__" MAKE="./configure --with-linux='${kernel_source_dir}' && make -C datapath/linux" -BUILT_MODULE_NAME[0]=openvswitch_mod -BUILT_MODULE_NAME[1]=brcompat_mod +BUILT_MODULE_NAME[0]=openvswitch +BUILT_MODULE_NAME[1]=brcompat BUILT_MODULE_LOCATION[0]=datapath/linux/ BUILT_MODULE_LOCATION[1]=datapath/linux/ DEST_MODULE_LOCATION[0]=/kernel/drivers/net/openvswitch/ diff --git a/utilities/ovs-ctl.8 b/utilities/ovs-ctl.8 index 658cbd6b..06ccfeca 100644 --- a/utilities/ovs-ctl.8 +++ b/utilities/ovs-ctl.8 @@ -282,8 +282,8 @@ from other errors that may occur when running the \fBstart\fR command. . .PP By default the \fBload\-kmod\fR command attempts to load the -openvswitch_mod kernel module. If the \fB\-\-brcompat\fR option is -specified then the brcompat_mod kernel module is also loaded. +openvswitch kernel module. If the \fB\-\-brcompat\fR option is +specified then the brcompat kernel module is also loaded. . .SH "The ``enable\-protocol'' command" . diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in index 9bdb3df1..76d39ec1 100755 --- a/utilities/ovs-ctl.in +++ b/utilities/ovs-ctl.in @@ -31,14 +31,15 @@ done ## ----- ## insert_openvswitch_mod_if_required () { - # If openvswitch_mod is already loaded then we're done. - test -e /sys/module/openvswitch_mod && return 0 + # If openvswitch is already loaded then we're done. + test -e /sys/module/openvswitch -o -e /sys/module/openvswitch_mod && \ + return 0 - # Load openvswitch_mod. If that's successful then we're done. - action "Inserting openvswitch module" modprobe openvswitch_mod && return 0 + # Load openvswitch. If that's successful then we're done. + action "Inserting openvswitch module" modprobe openvswitch && return 0 # If the bridge module is loaded, then that might be blocking - # openvswitch_mod. Try to unload it, if there are no bridges. + # openvswitch. Try to unload it, if there are no bridges. test -e /sys/module/bridge || return 1 bridges=`echo /sys/class/net/*/bridge | sed 's,/sys/class/net/,,g;s,/bridge,,g'` if test "$bridges" != "*"; then @@ -47,17 +48,17 @@ insert_openvswitch_mod_if_required () { fi action "removing bridge module" rmmod bridge || return 1 - # Try loading openvswitch_mod again. - action "Inserting openvswitch module" modprobe openvswitch_mod + # Try loading openvswitch again. + action "Inserting openvswitch module" modprobe openvswitch } insert_brcompat_mod_if_required () { if test -e /sys/module/bridge; then - log_warning_msg "bridge module is loaded, not loading brcompat_mod" + log_warning_msg "bridge module is loaded, not loading brcompat" return 1 fi - test -e /sys/module/brcompat_mod && return 0 - action "Inserting brcompat module" modprobe brcompat_mod + test -e /sys/module/brcompat -o -e /sys/module/brcompat_mod && return 0 + action "Inserting brcompat module" modprobe brcompat } insert_mod_if_required () { @@ -286,11 +287,16 @@ force_reload_kmod () { action "Removing datapath: $dp" ovs-dpctl del-dp "$dp" done + # try both old and new names in case this is post upgrade if test -e /sys/module/brcompat_mod; then action "Removing brcompat module" rmmod brcompat_mod + elif test -e /sys/module/brcompat; then + action "Removing brcompat module" rmmod brcompat fi if test -e /sys/module/openvswitch_mod; then action "Removing openvswitch module" rmmod openvswitch_mod + elif test -e /sys/module/openvswitch; then + action "Removing openvswitch module" rmmod openvswitch fi start diff --git a/vswitchd/ovs-brcompatd.8.in b/vswitchd/ovs-brcompatd.8.in index 0d5d4620..fdce0428 100644 --- a/vswitchd/ovs-brcompatd.8.in +++ b/vswitchd/ovs-brcompatd.8.in @@ -36,7 +36,7 @@ to find it. .so lib/leak-checker.man . .SH NOTES -\fBovs\-brcompatd\fR requires the \fBbrcompat_mod.ko\fR kernel module to be +\fBovs\-brcompatd\fR requires the \fBbrcompat.ko\fR kernel module to be loaded. .SH "SEE ALSO" .BR ovs\-appctl (8), diff --git a/vswitchd/ovs-brcompatd.c b/vswitchd/ovs-brcompatd.c index 41aabe48..18a6708e 100644 --- a/vswitchd/ovs-brcompatd.c +++ b/vswitchd/ovs-brcompatd.c @@ -456,7 +456,7 @@ handle_fdb_query_cmd(struct ofpbuf *buffer) uint32_t seq; int error; - /* Parse the command received from brcompat_mod. */ + /* Parse the command received from brcompat. */ error = parse_command(buffer, &seq, &linux_name, NULL, &count, &skip); if (error) { return error; diff --git a/xenserver/openvswitch-xen.spec.in b/xenserver/openvswitch-xen.spec.in index 7ab5af8d..a8e7e973 100644 --- a/xenserver/openvswitch-xen.spec.in +++ b/xenserver/openvswitch-xen.spec.in @@ -49,7 +49,7 @@ License: ASL 2.0 Release: 1 Source: openvswitch-%{openvswitch_version}.tar.gz Buildroot: /tmp/openvswitch-xen-rpm -Requires: openvswitch_mod.ko.%{module_abi_version} +Requires: openvswitch.ko.%{module_abi_version} %description Open vSwitch provides standard network bridging functions augmented with @@ -60,7 +60,7 @@ traffic. Summary: Open vSwitch kernel module Group: System Environment/Kernel License: GPLv2 -Provides: %{name}-modules-%{kernel_flavor} = %{kernel_version}, openvswitch_mod.ko.%{module_abi_version} +Provides: %{name}-modules-%{kernel_flavor} = %{kernel_version}, openvswitch.ko.%{module_abi_version} Requires: kernel-%{kernel_name} = %{kernel_version} %description %{module_package} @@ -448,5 +448,5 @@ exit 0 %exclude /usr/share/openvswitch/python/ovs/db/*.py[co] %files %{module_package} -/lib/modules/%{xen_version}/extra/openvswitch/openvswitch_mod.ko -%exclude /lib/modules/%{xen_version}/extra/openvswitch/brcompat_mod.ko +/lib/modules/%{xen_version}/extra/openvswitch/openvswitch.ko +%exclude /lib/modules/%{xen_version}/extra/openvswitch/brcompat.ko -- 2.30.2