summaryrefslogtreecommitdiffstats
path: root/recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch')
-rw-r--r--recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch123
1 files changed, 123 insertions, 0 deletions
diff --git a/recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch b/recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch
new file mode 100644
index 0000000..bbe7a32
--- /dev/null
+++ b/recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch
@@ -0,0 +1,123 @@
1Add ovs-vswitchd dpdk parameters and ovs_dpdk daemon calls.
2
3Signed-off-by: Radu Patriu <radu.patriu@enea.com>
4Upstream-Status: Pending
5
6Index: git/openvswitch/utilities/ovs-ctl.in
7===================================================================
8--- git.orig/openvswitch/utilities/ovs-ctl.in 2014-05-22 14:48:48.505319435 +0300
9+++ git/openvswitch/utilities/ovs-ctl.in 2014-05-22 15:05:46.437302665 +0300
10@@ -13,6 +13,15 @@
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14+#OVS_DPDK_PARAMS_DEFAULT to be replaced by install script
15+OVS_DPDK_PARAMS=${OVS_DPDK_PARAMS:-"@OVS_DPDK_PARAMS_DEFAULT"}
16+
17+#OVS_VSWITCHD_PARAMS_DEFAULT to be replaced by install script
18+OVS_VSWITCHD_PARAMS=${OVS_VSWITCHD_PARAMS:-"@OVS_VSWITCHD_PARAMS_DEFAULT"}
19+
20+#OVS_DPDK_LOG_DEFAULT to be replaced by install script
21+OVS_DPDK_LOG=${OVS_DPDK_LOG:-"@OVS_DPDK_LOG_DEFAULT"}
22+
23 case $0 in
24 */*) dir0=`echo "$0" | sed 's,/[^/]*$,,'` ;;
25 *) dir0=./ ;;
26@@ -106,7 +115,7 @@
27 set_system_ids () {
28 set ovs_vsctl set Open_vSwitch .
29
30- OVS_VERSION=`ovs-vswitchd --version | sed 's/.*) //;1q'`
31+ OVS_VERSION=`ovs-vswitchd -c 0x01 -n 4 --proc-type=auto -m 4 -- --version | sed -n 's/ovs-vswitchd (Open vSwitch) \(.*\)/\1/p'`
32 set "$@" ovs-version="$OVS_VERSION"
33
34 case $SYSTEM_ID in
35@@ -215,9 +224,39 @@
36 db:Open_vSwitch,Open_vSwitch,manager_options
37 }
38
39+start_dpdk () {
40+ if daemon_is_running ovs_dpdk; then
41+ log_success_msg "ovs_dpdk is already running"
42+ else
43+ modprobe uio
44+ test -e /sys/module/igb_uio || insmod $datadir/../openvswitchdpdk/kmod/igb_uio.ko
45+ test -e /sys/module/rte_kni || insmod $datadir/../openvswitchdpdk/kmod/rte_kni.ko
46+ rm -f $rundir/ovs_dpdk.pid
47+ start-stop-daemon --start --quiet --background --make-pidfile --pidfile $rundir/ovs_dpdk.pid --exec /bin/sh -- -c "exec ovs_dpdk $OVS_DPDK_PARAMS >> $OVS_DPDK_LOG 2>&1"
48+ #wait for ovs_dpdk to initialize before starting ovs-vswitchd
49+ sleep 10
50+ fi
51+}
52+
53+stop_dpdk () {
54+ pid=`cat "$rundir/ovs_dpdk.pid"`
55+ rtemaps=`test -e /proc/$pid/maps && cat /proc/$pid/maps | grep -o '/.*rtemap_.*$'`
56+
57+ stop_daemon ovs_dpdk
58+
59+ #try to clean
60+ for rtemap in $rtemaps
61+ do
62+ rm -f $rtemap
63+ done
64+ rm -f $rundir/ovs_dpdk.pid
65+}
66+
67 start_forwarding () {
68 check_force_cores
69
70+ start_dpdk
71+
72 insert_mod_if_required || return 1
73
74 if daemon_is_running ovs-vswitchd; then
75@@ -230,9 +269,9 @@
76 ulimit -n 7500
77
78 # Start ovs-vswitchd.
79- set ovs-vswitchd unix:"$DB_SOCK"
80+ set ovs-vswitchd $OVS_VSWITCHD_PARAMS -- unix:"$DB_SOCK"
81 set "$@" -vconsole:emer -vsyslog:err -vfile:info
82- if test X"$MLOCKALL" != Xno; then
83+ if test -"$MLOCKALL" != Xno; then
84 set "$@" --mlockall
85 fi
86 start_daemon "$OVS_VSWITCHD_PRIORITY" "$OVS_VSWITCHD_WRAPPER" "$@"
87@@ -249,6 +288,7 @@
88
89 stop_forwarding () {
90 stop_daemon ovs-vswitchd
91+ stop_dpdk
92 }
93
94 ## ----------------- ##
95@@ -505,8 +545,10 @@
96 MLOCKALL=yes
97 OVSDB_SERVER_PRIORITY=-10
98 OVS_VSWITCHD_PRIORITY=-10
99+ OVS_DPDK_PRIORITY=-10
100 OVSDB_SERVER_WRAPPER=
101 OVS_VSWITCHD_WRAPPER=
102+ OVS_DPDK_WRAPPER=
103
104 DB_FILE=$dbdir/conf.db
105 DB_SOCK=$rundir/db.sock
106@@ -601,6 +643,8 @@
107 data files: @pkgdatadir@ (--pkgdatadir, OVS_PKGDATADIR)
108 user binaries: @bindir@ (--bindir, OVS_BINDIR)
109 system binaries: @sbindir@ (--sbindir, OVS_SBINDIR)
110+ ovs_dpdk params: OVS_DPDK_PARAMS (env only)
111+ ovs-vswitchd dpdk params: OVS_VSWITCHD_PARAMS (env only)
112
113 Please report bugs to bugs@openvswitch.org (see REPORTING-BUGS for details).
114 EOF
115@@ -622,7 +666,7 @@
116 }
117
118 daemons () {
119- echo ovsdb-server ovs-vswitchd
120+ echo ovsdb-server ovs-vswitchd ovs_dpdk
121 }
122
123 set_defaults