diff options
Diffstat (limited to 'recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch')
-rw-r--r-- | recipes-networking/openvswitchdpdk/files/ovs-ctl-dpdk.patch | 123 |
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 @@ | |||
1 | Add ovs-vswitchd dpdk parameters and ovs_dpdk daemon calls. | ||
2 | |||
3 | Signed-off-by: Radu Patriu <radu.patriu@enea.com> | ||
4 | Upstream-Status: Pending | ||
5 | |||
6 | Index: 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 | ||