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 <mmaha...@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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev