diff options
Diffstat (limited to 'external/meta-openembedded/meta-networking/recipes-protocols/openflow')
6 files changed, 207 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc new file mode 100644 index 00000000..cccbfa19 --- /dev/null +++ b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc @@ -0,0 +1,37 @@ +SUMMARY = "OpenFlow communications protocol" +DESCRIPTION = "\ +Open standard that enables researchers to run experimental protocols in \ +contained networks. OpenFlow is a communications interface between \ +control and forwarding planes of a software-defined networking architecture.\ +" +HOMEPAGE = "http://www.openflow.org" + +SECTION = "net" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2" + +SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git" + +DEPENDS = "virtual/libc" + +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl openssl-native, libssl" + +EXTRA_OECONF += " \ + KARCH=${TARGET_ARCH} \ + ${@bb.utils.contains('PACKAGECONFIG', 'openssl', 'SSL_LIBS="-lssl -lcrypto"', '', d)} \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig + +do_configure_prepend() { + ./boot.sh +} + +do_install_append() { + # Remove /var/run as it is created on startup + rm -rf ${D}${localstatedir}/run +} diff --git a/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch new file mode 100644 index 00000000..952274bb --- /dev/null +++ b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch @@ -0,0 +1,64 @@ +From 7b62e5884353b247f542844d1e4687d0e9211999 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 20 Jul 2017 04:27:32 -0700 +Subject: [PATCH 1/2] Check and use strlcpy from libc before defining own + +This is required especially on musl where +function prototype conflicts and causes build +failures. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 2 +- + lib/util.c | 2 ++ + lib/util.h | 1 + + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 13064f6..596c43f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -57,7 +57,7 @@ OFP_CHECK_HWTABLES + OFP_CHECK_HWLIBS + AC_SYS_LARGEFILE + +-AC_CHECK_FUNCS([strsignal]) ++AC_CHECK_FUNCS([strlcpy strsignal]) + + AC_ARG_VAR(KARCH, [Kernel Architecture String]) + AC_SUBST(KARCH) +diff --git a/lib/util.c b/lib/util.c +index 21cc28d..1f341b1 100644 +--- a/lib/util.c ++++ b/lib/util.c +@@ -138,6 +138,7 @@ xasprintf(const char *format, ...) + return s; + } + ++#ifndef HAVE_STRLCPY + void + strlcpy(char *dst, const char *src, size_t size) + { +@@ -148,6 +149,7 @@ strlcpy(char *dst, const char *src, size_t size) + dst[n_copy] = '\0'; + } + } ++#endif + + void + ofp_fatal(int err_no, const char *format, ...) +diff --git a/lib/util.h b/lib/util.h +index fde681f..9e45ea9 100644 +--- a/lib/util.h ++++ b/lib/util.h +@@ -41,6 +41,7 @@ + #include <stdio.h> + #include <string.h> + #include "compiler.h" ++#include "config.h" + + #ifndef va_copy + #ifdef __va_copy +-- +2.13.3 + diff --git a/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch new file mode 100644 index 00000000..4acae80f --- /dev/null +++ b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch @@ -0,0 +1,33 @@ +From 0fe6770b617af7e400abc6f8652c1417d4c3575e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 8 Sep 2018 22:49:15 -0700 +Subject: [PATCH] generate not static get_dh* functions + +Fixes build with OpenSSL 1.1.x + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/automake.mk | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/lib/automake.mk b/lib/automake.mk +index bfbeb94..b53909a 100644 +--- a/lib/automake.mk ++++ b/lib/automake.mk +@@ -113,8 +113,9 @@ lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem + (echo '#include "lib/dhparams.h"' && \ + openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout && \ + openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout && \ +- openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) \ +- | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp ++ openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) | \ ++ sed -e 's/\(get_dh[0-9]*\)()/\1(void)/' \ ++ -e 's/static DH \*get_dh/DH \*get_dh/' > lib/dhparams.c.tmp + mv lib/dhparams.c.tmp lib/dhparams.c + endif + +-- +2.18.0 + diff --git a/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch new file mode 100644 index 00000000..75180fe3 --- /dev/null +++ b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch @@ -0,0 +1,59 @@ +From 5bba224edea38607e8732081f86679ffd8b218ab Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 20 Jul 2017 04:29:04 -0700 +Subject: [PATCH 2/2] lib/netdev: Adjust header include sequence + +Specify libc headers before kernel UAPIs +this helps compiling with musl where otherwise +it uses the definition from kernel and complains +about double definition in libc headers + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/netdev.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/lib/netdev.c b/lib/netdev.c +index 3b6fbc5..c7de25e 100644 +--- a/lib/netdev.c ++++ b/lib/netdev.c +@@ -39,7 +39,6 @@ + #include <fcntl.h> + #include <arpa/inet.h> + #include <inttypes.h> +-#include <linux/if_tun.h> + + /* Fix for some compile issues we were experiencing when setting up openwrt + * with the 2.4 kernel. linux/ethtool.h seems to use kernel-style inttypes, +@@ -57,10 +56,6 @@ + #define s64 __s64 + #endif + +-#include <linux/ethtool.h> +-#include <linux/rtnetlink.h> +-#include <linux/sockios.h> +-#include <linux/version.h> + #include <sys/types.h> + #include <sys/ioctl.h> + #include <sys/socket.h> +@@ -68,12 +63,16 @@ + #include <net/ethernet.h> + #include <net/if.h> + #include <net/if_arp.h> +-#include <net/if_packet.h> + #include <net/route.h> + #include <netinet/in.h> + #include <stdlib.h> + #include <string.h> + #include <unistd.h> ++#include <linux/ethtool.h> ++#include <linux/rtnetlink.h> ++#include <linux/sockios.h> ++#include <linux/version.h> ++#include <linux/if_tun.h> + + #include "fatal-signal.h" + #include "list.h" +-- +2.13.3 + diff --git a/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb new file mode 100644 index 00000000..a7e254dd --- /dev/null +++ b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_1.0.bb @@ -0,0 +1,4 @@ +include ${BPN}.inc + +SRCREV = "5ccca75a69f99791659bcfbcf35353ab1921320a" +PV = "1.0" diff --git a/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb new file mode 100644 index 00000000..b6cef073 --- /dev/null +++ b/external/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb @@ -0,0 +1,10 @@ +include ${BPN}.inc + +SRCREV = "c84f33f09d5dbcfc9b489f64cb30475bf36f653a" +PV = "1.0+git${SRCPV}" + +SRC_URI += "\ + file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \ + file://0002-lib-netdev-Adjust-header-include-sequence.patch \ + file://0001-generate-not-static-get_dh-functions.patch \ + " |