diff --git a/util/openflow-patches/README b/util/openflow-patches/README new file mode 100644 index 0000000..36f19ad --- /dev/null +++ b/util/openflow-patches/README @@ -0,0 +1,5 @@ +Patches for OpenFlow Reference Implementation + +controller.patch: patch controller to support up to 4096 switches (up from 16!) + +datapath.patch: patch to kernel datapath to compile with CONFIG_NET_NS=y diff --git a/util/openflow-patches/controller.patch b/util/openflow-patches/controller.patch new file mode 100644 index 0000000..c392fae --- /dev/null +++ b/util/openflow-patches/controller.patch @@ -0,0 +1,15 @@ +diff --git a/controller/controller.c b/controller/controller.c +index 41f2547..6eec590 100644 +--- a/controller/controller.c ++++ b/controller/controller.c +@@ -58,8 +58,8 @@ + #include "vlog.h" + #define THIS_MODULE VLM_controller + +-#define MAX_SWITCHES 16 +-#define MAX_LISTENERS 16 ++#define MAX_SWITCHES 4096 ++#define MAX_LISTENERS 4096 + + struct switch_ { + struct lswitch *lswitch; diff --git a/util/openflow-patches/datapath.patch b/util/openflow-patches/datapath.patch new file mode 100644 index 0000000..019b60e --- /dev/null +++ b/util/openflow-patches/datapath.patch @@ -0,0 +1,26 @@ +diff --git a/datapath/datapath.c b/datapath/datapath.c +index 4a4d3a2..365aa25 100644 +--- a/datapath/datapath.c ++++ b/datapath/datapath.c +@@ -47,6 +47,9 @@ + +#include "compat.h" + ++#ifdef CONFIG_NET_NS ++#include ++#endif + +/* Strings to describe the manufacturer, hardware, and software. This data + * is queriable through the switch description stats message. */ +@@ -259,7 +262,11 @@ send_openflow_skb(const struct datapath *dp, + struct sk_buff *skb, const struct sender *sender) +{ + return (sender +- ? genlmsg_unicast(skb, sender->pid) ++#ifdef CONFIG_NET_NS ++ ? genlmsg_unicast(&init_net, skb, sender->pid) ++#else ++ ? genlmsg_unicast(skb, sender->pid) ++#endif + : genlmsg_multicast(skb, 0, dp_mc_group(dp), GFP_ATOMIC)); +}