Browse code

Update to OpenvSwitch 2.8.2

Change-Id: If19489cc73d5c8af849d53c9db724203cd377d45
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4834
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Xiaolin Li <xiaolinl@vmware.com>

Vinay Kulkarni authored on 2018/02/28 11:54:59
Showing 6 changed files
1 1
deleted file mode 100644
... ...
@@ -1,174 +0,0 @@
1
-diff -dupr a/lib/ofp-util.c b/lib/ofp-util.c
2
-+++ b/lib/ofp-util.c	2017-10-10 13:21:04.512047007 -0700
3
-@@ -8690,6 +8690,7 @@ ofputil_pull_ofp11_buckets(struct ofpbuf
4
-         if (!ob) {
5
-             VLOG_WARN_RL(&bad_ofmsg_rl, "buckets end with %"PRIuSIZE" leftover bytes",
6
-                          buckets_length);
7
-+            ofputil_bucket_list_destroy(buckets);
8
-             return OFPERR_OFPGMFC_BAD_BUCKET;
9
-         }
10
- 
11
-@@ -8697,11 +8698,13 @@ ofputil_pull_ofp11_buckets(struct ofpbuf
12
-         if (ob_len < sizeof *ob) {
13
-             VLOG_WARN_RL(&bad_ofmsg_rl, "OpenFlow message bucket length "
14
-                          "%"PRIuSIZE" is not valid", ob_len);
15
-+            ofputil_bucket_list_destroy(buckets);
16
-             return OFPERR_OFPGMFC_BAD_BUCKET;
17
-         } else if (ob_len > buckets_length) {
18
-             VLOG_WARN_RL(&bad_ofmsg_rl, "OpenFlow message bucket length "
19
-                          "%"PRIuSIZE" exceeds remaining buckets data size %"PRIuSIZE,
20
-                          ob_len, buckets_length);
21
-+            ofputil_bucket_list_destroy(buckets);
22
-             return OFPERR_OFPGMFC_BAD_BUCKET;
23
-         }
24
-         buckets_length -= ob_len;
25
-@@ -9093,8 +9096,13 @@ ofputil_decode_ofp15_group_desc_reply(st
26
-      * Such properties are valid for group desc replies so
27
-      * claim that the group mod command is OFPGC15_ADD to
28
-      * satisfy the check in parse_group_prop_ntr_selection_method() */
29
--    return parse_ofp15_group_properties(msg, gd->type, OFPGC15_ADD, &gd->props,
30
--                                        length - sizeof *ogds - bucket_list_len);
31
-+    error = parse_ofp15_group_properties(
32
-+        msg, gd->type, OFPGC15_ADD, &gd->props,
33
-+        length - sizeof *ogds - bucket_list_len);
34
-+    if (error) {
35
-+        ofputil_bucket_list_destroy(&gd->buckets);
36
-+    }
37
-+    return error;
38
- }
39
- 
40
- /* Converts a group description reply in 'msg' into an abstract
41
-@@ -9331,6 +9339,7 @@ ofputil_pull_ofp11_group_mod(struct ofpb
42
-         && gm->command == OFPGC11_DELETE
43
-         && !ovs_list_is_empty(&gm->buckets)) {
44
-         error = OFPERR_OFPGMFC_INVALID_GROUP;
45
-+        ofputil_bucket_list_destroy(&gm->buckets);
46
-     }
47
- 
48
-     return error;
49
-@@ -9388,45 +9397,17 @@ ofputil_pull_ofp15_group_mod(struct ofpb
50
-         return error;
51
-     }
52
- 
53
--    return parse_ofp15_group_properties(msg, gm->type, gm->command, &gm->props,
54
--                                        msg->size);
55
-+    error = parse_ofp15_group_properties(msg, gm->type, gm->command,
56
-+                                         &gm->props, msg->size);
57
-+    if (error) {
58
-+        ofputil_bucket_list_destroy(&gm->buckets);
59
-+    }
60
-+    return error;
61
- }
62
- 
63
--/* Converts OpenFlow group mod message 'oh' into an abstract group mod in
64
-- * 'gm'.  Returns 0 if successful, otherwise an OpenFlow error code. */
65
--enum ofperr
66
--ofputil_decode_group_mod(const struct ofp_header *oh,
67
--                         struct ofputil_group_mod *gm)
68
-+static enum ofperr
69
-+ofputil_check_group_mod(const struct ofputil_group_mod *gm)
70
- {
71
--    ofputil_init_group_properties(&gm->props);
72
--
73
--    enum ofp_version ofp_version = oh->version;
74
--    struct ofpbuf msg = ofpbuf_const_initializer(oh, ntohs(oh->length));
75
--    ofpraw_pull_assert(&msg);
76
--
77
--    enum ofperr err;
78
--    switch (ofp_version)
79
--    {
80
--    case OFP11_VERSION:
81
--    case OFP12_VERSION:
82
--    case OFP13_VERSION:
83
--    case OFP14_VERSION:
84
--        err = ofputil_pull_ofp11_group_mod(&msg, ofp_version, gm);
85
--        break;
86
--
87
--    case OFP15_VERSION:
88
--    case OFP16_VERSION:
89
--        err = ofputil_pull_ofp15_group_mod(&msg, ofp_version, gm);
90
--        break;
91
--
92
--    case OFP10_VERSION:
93
--    default:
94
--        OVS_NOT_REACHED();
95
--    }
96
--    if (err) {
97
--        return err;
98
--    }
99
--
100
-     switch (gm->type) {
101
-     case OFPGT11_INDIRECT:
102
-         if (gm->command != OFPGC11_DELETE
103
-@@ -9488,6 +9469,48 @@ ofputil_decode_group_mod(const struct of
104
-     return 0;
105
- }
106
- 
107
-+/* Converts OpenFlow group mod message 'oh' into an abstract group mod in
108
-+ * 'gm'.  Returns 0 if successful, otherwise an OpenFlow error code. */
109
-+enum ofperr
110
-+ofputil_decode_group_mod(const struct ofp_header *oh,
111
-+                         struct ofputil_group_mod *gm)
112
-+{
113
-+    ofputil_init_group_properties(&gm->props);
114
-+
115
-+    enum ofp_version ofp_version = oh->version;
116
-+    struct ofpbuf msg = ofpbuf_const_initializer(oh, ntohs(oh->length));
117
-+    ofpraw_pull_assert(&msg);
118
-+
119
-+    enum ofperr err;
120
-+    switch (ofp_version)
121
-+    {
122
-+    case OFP11_VERSION:
123
-+    case OFP12_VERSION:
124
-+    case OFP13_VERSION:
125
-+    case OFP14_VERSION:
126
-+        err = ofputil_pull_ofp11_group_mod(&msg, ofp_version, gm);
127
-+        break;
128
-+
129
-+    case OFP15_VERSION:
130
-+    case OFP16_VERSION:
131
-+        err = ofputil_pull_ofp15_group_mod(&msg, ofp_version, gm);
132
-+        break;
133
-+
134
-+    case OFP10_VERSION:
135
-+    default:
136
-+        OVS_NOT_REACHED();
137
-+    }
138
-+    if (err) {
139
-+        return err;
140
-+    }
141
-+
142
-+    err = ofputil_check_group_mod(gm);
143
-+    if (err) {
144
-+        ofputil_uninit_group_mod(gm);
145
-+    }
146
-+    return err;
147
-+}
148
-+
149
- /* Destroys 'bms'. */
150
- void
151
- ofputil_free_bundle_msgs(struct ofputil_bundle_msg *bms, size_t n_bms)
152
-@@ -10020,14 +10043,21 @@ ofputil_decode_bundle_add(const struct o
153
-                           enum ofptype *typep)
154
- {
155
-     struct ofpbuf b = ofpbuf_const_initializer(oh, ntohs(oh->length));
156
-+
157
-+    /* Pull the outer ofp_header. */
158
-     enum ofpraw raw = ofpraw_pull_assert(&b);
159
-     ovs_assert(raw == OFPRAW_OFPT14_BUNDLE_ADD_MESSAGE
160
-                || raw == OFPRAW_ONFT13_BUNDLE_ADD_MESSAGE);
161
- 
162
-+    /* Pull the bundle_ctrl header. */
163
-     const struct ofp14_bundle_ctrl_msg *m = ofpbuf_pull(&b, sizeof *m);
164
-     msg->bundle_id = ntohl(m->bundle_id);
165
-     msg->flags = ntohs(m->flags);
166
- 
167
-+    /* Pull the inner ofp_header. */
168
-+    if (b.size < sizeof(struct ofp_header)) {
169
-+        return OFPERR_OFPBFC_MSG_BAD_LEN;
170
-+    }
171
-     msg->msg = b.data;
172
-     if (msg->msg->version != oh->version) {
173
-         return OFPERR_OFPBFC_BAD_VERSION;
174 1
deleted file mode 100644
... ...
@@ -1,20 +0,0 @@
1
-Reported-by: Bhargava Shastry <bshastry at sec.t-labs.tu-berlin.de>
2
-Signed-off-by: Ben Pfaff <blp at ovn.org>
3
- lib/ofp-util.c | 2 +-
4
- 1 file changed, 1 insertion(+), 1 deletion(-)
5
-
6
-diff --git a/lib/ofp-util.c b/lib/ofp-util.c
7
-index bdf89b6c3017..f05ca398c13e 100644
8
-+++ b/lib/ofp-util.c
9
-@@ -2610,7 +2610,7 @@ ofputil_pull_queue_get_config_reply10(struct ofpbuf *msg,
10
- 
11
-         hdr = ofpbuf_at_assert(msg, 0, sizeof *hdr);
12
-         prop_len = ntohs(hdr->len);
13
--        if (prop_len < sizeof *hdr || prop_len > msg->size || prop_len % 8) {
14
-+        if (prop_len < sizeof *hdr || prop_len > len || prop_len % 8) {
15
-             return OFPERR_OFPBRC_BAD_LEN;
16
-         }
17
- 
18 1
deleted file mode 100644
... ...
@@ -1,21 +0,0 @@
1
-Reported-by: Bhargava Shastry <bshastry at sec.t-labs.tu-berlin.de>
2
-Signed-off-by: Ben Pfaff <blp at ovn.org>
3
- lib/ofp-print.c | 3 ++-
4
- 1 file changed, 2 insertions(+), 1 deletion(-)
5
-
6
-diff --git a/lib/ofp-print.c b/lib/ofp-print.c
7
-index 7ca953100539..1932baf4871f 100644
8
-+++ b/lib/ofp-print.c
9
-@@ -2147,7 +2147,8 @@ ofp_print_role_status_message(struct ds *string, const struct ofp_header *oh)
10
-         break;
11
-     case OFPCRR_N_REASONS:
12
-     default:
13
--        OVS_NOT_REACHED();
14
-+        ds_put_cstr(string, "(unknown)");
15
-+        break;
16
-     }
17
- }
18
- 
19 1
deleted file mode 100644
... ...
@@ -1,21 +0,0 @@
1
-Reported-by: Bhargava Shastry <bshastry at sec.t-labs.tu-berlin.de>
2
-Signed-off-by: Ben Pfaff <blp at ovn.org>
3
- lib/ofp-util.c | 3 +++
4
- 1 file changed, 3 insertions(+)
5
-
6
-diff --git a/lib/ofp-util.c b/lib/ofp-util.c
7
-index f05ca398c13e..46bc628d4191 100644
8
-+++ b/lib/ofp-util.c
9
-@@ -9581,6 +9581,9 @@ ofputil_pull_ofp15_group_mod(struct ofpbuf *msg, enum ofp_version ofp_version,
10
-     }
11
- 
12
-     bucket_list_len = ntohs(ogm->bucket_array_len);
13
-+    if (bucket_list_len > msg->size) {
14
-+        return OFPERR_OFPBRC_BAD_LEN;
15
-+    }
16
-     error = ofputil_pull_ofp15_buckets(msg, bucket_list_len, ofp_version,
17
-                                        gm->type, &gm->buckets);
18
-     if (error) {
... ...
@@ -2,8 +2,8 @@
2 2
 %{!?python3_sitelib: %global python3_sitelib %(python3 -c "from distutils.sysconfig import get_python_lib;print(get_python_lib())")}
3 3
 Summary:        Open vSwitch daemon/database/utilities
4 4
 Name:           openvswitch
5
-Version:        2.7.0
6
-Release:        9%{?dist}
5
+Version:        2.8.2
6
+Release:        1%{?dist}
7 7
 License:        ASL 2.0 and LGPLv2+
8 8
 URL:            http://www.openvswitch.org/
9 9
 Group:          System Environment/Daemons
... ...
@@ -11,12 +11,7 @@ Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
12 12
 
13 13
 Source0:        http://openvswitch.org/releases/%{name}-%{version}.tar.gz
14
-%define sha1 openvswitch=0f324ccfe52ae84a2b102a7f2db1411f4debacf6
15
-Patch0:         OVS-CVE-2017-9214.patch
16
-Patch1:         OVS-CVE-2017-9265.patch
17
-Patch2:         ovs-systemd-services.patch
18
-Patch3:         OVS-CVE-2017-9263.patch
19
-Patch4:         OVS-CVE-2017-14970.patch
14
+%define sha1 openvswitch=1d0e8cbf6d6e649e0f518219a599d7411f863875
20 15
 
21 16
 BuildRequires:  gcc >= 4.0.0
22 17
 BuildRequires:  libcap-ng
... ...
@@ -123,10 +118,6 @@ It contains the documentation and manpages for OVN.
123 123
 
124 124
 %prep
125 125
 %setup -q
126
-%patch0 -p1
127
-%patch1 -p1
128
-%patch3 -p1
129
-%patch4 -p1
130 126
 
131 127
 %build
132 128
 ./configure \
... ...
@@ -153,8 +144,9 @@ cp -a %{buildroot}/%{_datadir}/openvswitch/python/ovs/* %{buildroot}/%{python3_s
153 153
 mkdir -p %{buildroot}/%{_libdir}/systemd/system
154 154
 install -p -D -m 0644 rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template %{buildroot}/%{_sysconfdir}/sysconfig/openvswitch
155 155
 
156
-for service in openvswitch ovsdb-server ovs-vswitchd ovn-controller ovn-controller-vtep ovn-northd; do 
157
-	install -p -D -m 0644 rhel/usr_lib_systemd_system_${service}.service %{buildroot}/%{_unitdir}/${service}.service 
156
+/usr/bin/perl build-aux/dpdkstrip.pl --nodpdk < rhel/usr_lib_systemd_system_ovs-vswitchd.service.in > rhel/usr_lib_systemd_system_ovs-vswitchd.service
157
+for service in openvswitch ovsdb-server ovs-vswitchd ovn-controller ovn-controller-vtep ovn-northd; do
158
+	install -p -D -m 0644 rhel/usr_lib_systemd_system_${service}.service %{buildroot}/%{_unitdir}/${service}.service
158 159
 done
159 160
 
160 161
 %check
... ...
@@ -244,6 +236,7 @@ make -k check |& tee %{_specdir}/%{name}-check-log || %{nocheck}
244 244
 %{_bindir}/ovn-nbctl
245 245
 %{_bindir}/ovn-sbctl
246 246
 %{_bindir}/ovn-trace
247
+%{_bindir}/ovn-detrace
247 248
 %{_datadir}/openvswitch/scripts/ovn-ctl
248 249
 %{_datadir}/openvswitch/scripts/ovndb-servers.ocf
249 250
 %{_datadir}/openvswitch/scripts/ovn-bugtool-nbctl-show
... ...
@@ -269,6 +262,7 @@ make -k check |& tee %{_specdir}/%{name}-check-log || %{nocheck}
269 269
 %{_bindir}/ovn-docker-underlay-driver
270 270
 
271 271
 %files -n ovn-doc
272
+%{_mandir}/man1/ovn-detrace.1.gz
272 273
 %{_mandir}/man7/ovn-architecture.7.gz
273 274
 %{_mandir}/man8/ovn-ctl.8.gz
274 275
 %{_mandir}/man8/ovn-nbctl.8.gz
... ...
@@ -281,6 +275,8 @@ make -k check |& tee %{_specdir}/%{name}-check-log || %{nocheck}
281 281
 %{_mandir}/man8/ovn-trace.8.gz
282 282
 
283 283
 %changelog
284
+*   Tue Feb 27 2018 Vinay Kulkarni <kulkarniv@vmware.com> 2.8.2-1
285
+-   Update to OVS 2.8.2
284 286
 *   Tue Oct 10 2017 Dheeraj Shetty <dheerajs@vmware.com> 2.7.0-9
285 287
 -   Fix CVE-2017-14970
286 288
 *   Wed Oct 04 2017 Dheeraj Shetty <dheerajs@vmware.com> 2.7.0-8
287 289
deleted file mode 100644
... ...
@@ -1,66 +0,0 @@
1
-diff -Naur old/rhel/usr_lib_systemd_system_openvswitch.service new/rhel/usr_lib_systemd_system_openvswitch.service
2
-+++ new/rhel/usr_lib_systemd_system_openvswitch.service	2017-07-13 20:32:11.049910843 +0000
3
-@@ -1,6 +1,6 @@
4
- [Unit]
5
- Description=Open vSwitch
6
--Before=network.target network.service
7
-+Before=network.target systemd-networkd.service
8
- After=network-pre.target ovsdb-server.service ovs-vswitchd.service
9
- PartOf=network.target
10
- Requires=ovsdb-server.service
11
-diff -Naur old/rhel/usr_lib_systemd_system_ovn-controller.service new/rhel/usr_lib_systemd_system_ovn-controller.service
12
-+++ new/rhel/usr_lib_systemd_system_ovn-controller.service	2017-07-13 20:32:11.049910843 +0000
13
-@@ -15,7 +15,6 @@
14
- 
15
- [Unit]
16
- Description=OVN controller daemon
17
--After=syslog.target
18
- Requires=openvswitch.service
19
- After=openvswitch.service
20
- 
21
-diff -Naur old/rhel/usr_lib_systemd_system_ovn-controller-vtep.service new/rhel/usr_lib_systemd_system_ovn-controller-vtep.service
22
-+++ new/rhel/usr_lib_systemd_system_ovn-controller-vtep.service	2017-07-13 20:32:11.049910843 +0000
23
-@@ -28,7 +28,6 @@
24
- 
25
- [Unit]
26
- Description=OVN VTEP gateway controller daemon
27
--After=syslog.target
28
- Requires=openvswitch.service
29
- After=openvswitch.service
30
- 
31
-diff -Naur old/rhel/usr_lib_systemd_system_ovn-northd.service new/rhel/usr_lib_systemd_system_ovn-northd.service
32
-+++ new/rhel/usr_lib_systemd_system_ovn-northd.service	2017-07-13 20:32:11.049910843 +0000
33
-@@ -15,7 +15,6 @@
34
- 
35
- [Unit]
36
- Description=OVN northd management daemon
37
--After=syslog.target
38
- Requires=openvswitch.service
39
- After=openvswitch.service
40
- 
41
-diff -Naur old/rhel/usr_lib_systemd_system_ovsdb-server.service new/rhel/usr_lib_systemd_system_ovsdb-server.service
42
-+++ new/rhel/usr_lib_systemd_system_ovsdb-server.service	2017-07-13 20:32:11.049910843 +0000
43
-@@ -1,6 +1,6 @@
44
- [Unit]
45
- Description=Open vSwitch Database Unit
46
--After=syslog.target network-pre.target
47
-+After=network-pre.target
48
- Before=network.target network.service
49
- ReloadPropagatedFrom=openvswitch.service
50
- PartOf=openvswitch.service
51
-diff -Naur old/rhel/usr_lib_systemd_system_ovs-vswitchd.service new/rhel/usr_lib_systemd_system_ovs-vswitchd.service
52
-+++ new/rhel/usr_lib_systemd_system_ovs-vswitchd.service	2017-07-13 20:32:11.049910843 +0000
53
-@@ -1,7 +1,7 @@
54
- [Unit]
55
- Description=Open vSwitch Forwarding Unit
56
--Before=network.target network.service
57
-+Before=network.target systemd-networkd.service
58
- Requires=ovsdb-server.service
59
- ReloadPropagatedFrom=ovsdb-server.service
60
- AssertPathIsReadWrite=/var/run/openvswitch/db.sock