[ovs-dev] [PATCH] Setting miss_send_len on receiving NXT_SET_ASYNC_CONFIG message.

Mehak Mahajan mmahajan at nicira.com
Sun Jun 24 19:43:24 UTC 2012


For the service controllers to receive any asynchronous messages, the
miss_send_len must be set to a non-zero value (refer to DESIGN).  On
receiving the NXT_SET_ASYNC_CONFIG message, the miss_send_len is set
to the default value unless it is set to a non-zero value earlier by
the OFPT_SET_CONFIG message.

Signed-off-by: Mehak Mahajan <mmahajan at nicira.com>
---
 DESIGN            |    7 +++++--
 ofproto/ofproto.c |    3 +++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/DESIGN b/DESIGN
index f9345d1..23dca06 100644
--- a/DESIGN
+++ b/DESIGN
@@ -17,8 +17,11 @@ given controller receives OpenFlow asynchronous messages.  This
 section describes how all of these features interact.
 
 First, a service controller never receives any asynchronous messages
-unless it explicitly configures a miss_send_len greater than zero with
-an OFPT_SET_CONFIG message.
+unless, either it explicitly configures a miss_send_len greater than
+zero with an OFPT_SET_CONFIG message or it sends a NXT_SET_ASYNC_CONFIG.
+message.  If a NXT_SET_ASYNC_CONFIG message is sent, the miss_send_len
+is set to the default value of 128, unless it is already set to a
+non-zero value by the OFPT_SET_CONFIG message.
 
 Second, OFPT_FLOW_REMOVED and NXT_FLOW_REMOVED messages are generated
 only if the flow that was removed had the OFPFF_SEND_FLOW_REM flag
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 38430ab..1229937 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -3315,6 +3315,9 @@ handle_nxt_set_async_config(struct ofconn *ofconn, const struct ofp_header *oh)
     slave[OAM_FLOW_REMOVED] = ntohl(msg->flow_removed_mask[1]);
 
     ofconn_set_async_config(ofconn, master, slave);
+    if (!ofconn_get_miss_send_len(ofconn)) {
+        ofconn_set_miss_send_len(ofconn, OFP_DEFAULT_MISS_SEND_LEN);
+    }
 
     return 0;
 }
-- 
1.7.2.5




More information about the dev mailing list