This is a patch for the most recent stable build of OpenvSwitch (2.0.0).
 It supports kernels 2.6.32 - 3.10.x

It was taken and updated from Julius Shulz-Zander's work:
https://github.com/schuza/openvswitch

Signed-off-by: Peter Holland <[email protected]>
---
diff --git a/net/openvswitch/Makefile b/net/openvswitch/Makefile
new file mode 100644
--- /dev/null
+++ b/net/openvswitch/Makefile
@@ -0,0 +1,178 @@
+#
+# Copyright (C) 2013 Julius Schulz-Zander
+# Copyright (C) 2013 Peter Holland
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id: Makefile $
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=openvswitch
+
+PKG_RELEASE:=1
+PKG_VERSION:=2.0.0
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://openvswitch.org/releases/
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_FIXUP=libtool
+
+define Package/openvswitch/Default
+  SECTION:=net
+  SUBMENU:=OpenvSwitch
+  CATEGORY:=Network
+  URL:=http://www.openvswitchswitch.org/
+  DEPENDS:=+libopenssl +librt +libpcap
+endef
+
+define Package/openvswitch/Default/description
+  Open vSwitch is a production quality, multilayer, software-based,
Ethernet
+  virtual switch. It is designed to enable massive network automation
through
+  programmatic extension, while still supporting standard management
interfaces
+  and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In
+  addition, it is designed to support distribution across multiple physical
+  servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus
+  1000V.
+endef
+
+define Package/openvswitch-common
+  $(call Package/openvswitch/Default)
+  TITLE:=Open Flow Switch Userspace Package
+  DEPENDS:=+libpcap +libopenssl +librt +kmod-openvswitch
+endef
+
+define Package/openvswitch-common/description
+  openvswitch-common provides components required by both
openvswitch-switch and
+  openvswitch-controller.
+endef
+
+define Package/openvswitch-ipsec
+  $(call Package/openvswitch/Default)
+  TITLE:=Open Flow Switch Userspace Package
+  DEPENDS:=+openvswitch-common
+endef
+
+define Package/openvswitch-ipsec/description
+  The ovs-monitor-ipsec script provides support for encrypting GRE tunnels
with
+  IPsec.
+endef
+
+define Package/openvswitch-controller
+  $(call Package/openvswitch/Default)
+  TITLE:=Open Flow Switch Userspace Package
+  DEPENDS:=+openvswitch-common
+endef
+
+define Package/openvswitch-controller/description
+  The Open vSwitch controller enables OpenFlow switches that connect to it
to
+  act as MAC-learning Ethernet switches.
+endef
+
+define Package/openvswitch-switch
+  $(call Package/openvswitch/Default)
+  TITLE:=Open Flow Switch Userspace Package
+  DEPENDS:=+openvswitch-common
+endef
+
+define Package/openvswitch-switch/description
+  openvswitch-switch provides the userspace components and utilities for
the
+  Open vSwitch kernel-based switch.
+endef
+
+define KernelPackage/openvswitch
+  SECTION:=kernel
+  CATEGORY:=Kernel modules
+  SUBMENU:=Network Support
+  TITLE:=Open Flow Data Path Drivers
+  KCONFIG:=CONFIG_BRIDGE
+  DEPENDS:=+kmod-stp +kmod-ipv6 +kmod-gre +kmod-lib-crc32c
+  FILES:= \
+        $(PKG_BUILD_DIR)/datapath/linux/openvswitch.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,40,openvswitch)
+endef
+
+define KernelPackage/openvswitch/description
+  This package contains the Open vSwitch kernel moodule and bridge compat
+  module. Furthermore, it supports OpenFlow.
+endef
+
+CONFIGURE_ARGS += --with-linux=$(LINUX_DIR) --with-rundir=/var/run
+
+define Build/Configure
+ (cd $(PKG_BUILD_DIR); \
+ autoreconf -v --install --force || exit 1 \
+ );
+ $(call Build/Configure/Default,$(CONFIGURE_ARGS))
+endef
+
+define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="-I$(PKG_BUILD_DIR)/lib $(TARGET_CFLAGS) -std=gnu99" \
+ LDFLAGS="-L$(PKG_BUILD_DIR)/lib $(TARGET_LDFLAGS)" \
+ LDFLAGS_MODULES="$(TARGET_LDFLAGS) -L$(PKG_BUILD_DIR)/lib" \
+ STAGING_DIR="$(STAGING_DIR)" \
+ DESTDIR="$(PKG_INSTALL_DIR)/usr" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ ARCH="$(LINUX_KARCH)" \
+ PATH="$(TARGET_PATH)" \
+ KCC="$(KERNEL_CC)"
+endef
+
+define Package/openvswitch-ipsec/install
+ $(INSTALL_DIR) $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/debian/ovs-monitor-ipsec $(1)/usr/sbin/
+endef
+
+define Package/openvswitch-common/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-appctl $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-benchmark $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-ofctl $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-pki $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/ovsdb/ovsdb-client $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/bugtool/ovs-bugtool
$(1)/usr/sbin/
+endef
+
+define Package/openvswitch-controller/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-controller $(1)/usr/bin/
+endef
+
+define Package/openvswitch-switch/install
+ $(INSTALL_DIR) $(1)/sbin $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/etc/init.d/openvswitch.init
$(1)/etc/init.d/openvswitch
+
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-dpctl $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-pcap $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-tcpundump $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-vlan-test $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/ovs-vsctl $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/ovsdb/ovsdb-tool $(1)/usr/bin/
+
+ $(INSTALL_DIR) $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/vswitchd/ovs-vswitchd $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/ovsdb/ovsdb-server $(1)/usr/sbin/
+
+ $(INSTALL_DIR) $(1)/usr/share/openvswitch/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/vswitchd/vswitch.ovsschema
$(1)/usr/share/openvswitch/
+endef
+
+define Package/openvswitch-switch/postinst
+#!/bin/sh
+[ -n "$${IPKG_INSTROOT}" ] || /etc/init.d/openvswitch enable || true
+endef
+
+$(eval $(call BuildPackage,openvswitch-ipsec))
+$(eval $(call BuildPackage,openvswitch-common))
+$(eval $(call BuildPackage,openvswitch-controller))
+$(eval $(call BuildPackage,openvswitch-switch))
+$(eval $(call KernelPackage,openvswitch))
diff --git a/net/openvswitch/files/etc/init.d/openvswitch.init
b/net/openvswitch/files/etc/init.d/openvswitch.init
new file mode 100644
--- /dev/null
+++ b/net/openvswitch/files/etc/init.d/openvswitch.init
@@ -0,0 +1,49 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013 Julius Schulz-Zander
+# Coypright (C) 2013 Peter Holland
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+START=15
+# DEBUG="echo"
+
+start() {
+ [ -x /etc/openvswitch ] || mkdir -p /etc/openvswitch
+ [ -x /var/run/openvswitch ] || mkdir -p /var/run/openvswitch
+ [ -e /etc/openvswitch/conf.db ] || {
+ $DEBUG /usr/bin/ovsdb-tool create /etc/openvswitch/conf.db \
+ /usr/share/openvswitch/vswitch.ovsschema
+ }
+
+ $DEBUG start-stop-daemon -q -S -x  /usr/sbin/ovsdb-server -- \
+ --remote=punix:/var/run/db.sock
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
+ --pidfile=/var/run/ovsdb-server.pid --detach
+ sleep 1
+
+ $DEBUG ovs-vsctl --no-wait init
+ sleep 1
+
+ $DEBUG start-stop-daemon -q -S -x  /usr/sbin/ovs-vswitchd -- \
+ --pidfile=/var/run/ovs-vswitchd.pid --detach
+}
+
+stop() {
+ $DEBUG start-stop-daemon -q -K -p /var/run/ovs-vswitchd.pid
+ $DEBUG start-stop-daemon -q -K -p /var/run/ovsdb-server.pid
+}
+
+restart() {
+ ifdown -a
+ stop
+ sleep 1
+ start
+ ifup -a
+}
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to