diff options
author | Vasu Dasari <vdasari@gmail.com> | 2021-12-08 18:05:22 -0500 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2022-04-28 21:26:40 +0200 |
commit | d8ab75cd69c6eee136636c75f5c8aa6bcd8d7a53 (patch) | |
tree | 06780420864f0f24031e3f82ed51d9d54f0f0c7d /include | |
parent | d94cd0d3eec33e4290d7ca81918f5ac61444886e (diff) | |
download | openvswitch-d8ab75cd69c6eee136636c75f5c8aa6bcd8d7a53.tar.gz |
ofp-monitor: Extend Flow Monitoring support for OF 1.0-1.2 with Nicira Extensions.
Currently OVS supports flow-monitoring for OpenFlow 1.0 and Nicira Extenstions.
Any other OpenFlow versioned messages are not accepted. This change will allow
OpenFlow1.0-1.2 Flow Monitoring with Nicira extensions be accepted. Also made
sure that flow-monitoring updates, flow monitoring pause messages, resume
messages are sent in the same OpenFlow version as that of flow-monitor request.
Description of changes:
1. Generate ofp-msgs.inc to be able to support 1.0-1.2 Flow Monitoring messages.
include/openvswitch/ofp-msgs.h
2. Support vconn to accept user specified version and use it for vconn
flow-monitoring session
ofproto/ofproto.c
3. Modify APIs to use protocol as an argument to encode and decode messages
include/openvswitch/ofp-monitor.h
lib/ofp-monitor.c
ofproto/connmgr.c
ofproto/connmgr.h
ofproto/ofproto.c
4. Modified following testcases to be verified across supported OF Versions
ofproto - flow monitoring
ofproto - flow monitoring with !own
ofproto - flow monitoring with out_port
ofproto - flow monitoring pause and resume
ofproto - flow monitoring usable protocols
tests/ofproto.at
5. Updated NEWS with the support added with this commit
Signed-off-by: Vasu Dasari <vdasari@gmail.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2020-December/050820.html
Acked-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/openvswitch/ofp-monitor.h | 9 | ||||
-rw-r--r-- | include/openvswitch/ofp-msgs.h | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/include/openvswitch/ofp-monitor.h b/include/openvswitch/ofp-monitor.h index 237cef85e..835efd0f3 100644 --- a/include/openvswitch/ofp-monitor.h +++ b/include/openvswitch/ofp-monitor.h @@ -70,7 +70,8 @@ struct ofputil_flow_monitor_request { int ofputil_decode_flow_monitor_request(struct ofputil_flow_monitor_request *, struct ofpbuf *msg); void ofputil_append_flow_monitor_request( - const struct ofputil_flow_monitor_request *, struct ofpbuf *msg); + const struct ofputil_flow_monitor_request *, struct ofpbuf *msg, + enum ofputil_protocol protocol); void ofputil_flow_monitor_request_format( struct ds *, const struct ofputil_flow_monitor_request *, const struct ofputil_port_map *, const struct ofputil_table_map *); @@ -103,7 +104,8 @@ struct ofputil_flow_update { int ofputil_decode_flow_update(struct ofputil_flow_update *, struct ofpbuf *msg, struct ofpbuf *ofpacts); -void ofputil_start_flow_update(struct ovs_list *replies); +void ofputil_start_flow_update(struct ovs_list *replies, + enum ofputil_protocol protocol); void ofputil_append_flow_update(const struct ofputil_flow_update *, struct ovs_list *replies, const struct tun_table *); @@ -114,7 +116,8 @@ void ofputil_flow_update_format(struct ds *, /* Abstract nx_flow_monitor_cancel. */ uint32_t ofputil_decode_flow_monitor_cancel(const struct ofp_header *); -struct ofpbuf *ofputil_encode_flow_monitor_cancel(uint32_t id); +struct ofpbuf *ofputil_encode_flow_monitor_cancel( + uint32_t id, enum ofputil_protocol protocol); struct ofputil_requestforward { ovs_be32 xid; diff --git a/include/openvswitch/ofp-msgs.h b/include/openvswitch/ofp-msgs.h index 8457bc7d0..c5fde0270 100644 --- a/include/openvswitch/ofp-msgs.h +++ b/include/openvswitch/ofp-msgs.h @@ -453,12 +453,12 @@ enum ofpraw { /* OFPST 1.4+ (16): uint8_t[8][]. */ OFPRAW_OFPST14_FLOW_MONITOR_REQUEST, - /* NXST 1.0 (2): uint8_t[8][]. */ + /* NXST 1.0-1.2 (2): uint8_t[8][]. */ OFPRAW_NXST_FLOW_MONITOR_REQUEST, /* OFPST 1.4+ (16): uint8_t[8][]. */ OFPRAW_OFPST14_FLOW_MONITOR_REPLY, - /* NXST 1.0 (2): uint8_t[8][]. */ + /* NXST 1.0-1.2 (2): uint8_t[8][]. */ OFPRAW_NXST_FLOW_MONITOR_REPLY, /* Nicira extension messages. |