X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Ffail-open.c;h=b29e5af2e4ab20507c84b602c9a37b39ce533706;hb=0ef165ecb57943e17a8ee8270df68ffb8d032e29;hp=4900c050772818e24794246e082a815fece6b82f;hpb=15aaf59932a3fa3d6c6b914a62d1ba8515cedbf8;p=sliver-openvswitch.git diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c index 4900c0507..b29e5af2e 100644 --- a/ofproto/fail-open.c +++ b/ofproto/fail-open.c @@ -116,7 +116,7 @@ fail_open_is_active(const struct fail_open *fo) static void send_bogus_packet_ins(struct fail_open *fo) { - struct ofputil_packet_in pin; + struct ofproto_packet_in pin; uint8_t mac[ETH_ADDR_LEN]; struct ofpbuf b; @@ -125,11 +125,12 @@ send_bogus_packet_ins(struct fail_open *fo) compose_rarp(&b, mac); memset(&pin, 0, sizeof pin); - pin.packet = b.data; - pin.packet_len = b.size; - pin.reason = OFPR_NO_MATCH; - pin.send_len = b.size; - pin.fmd.in_port = OFPP_LOCAL; + pin.up.packet = ofpbuf_data(&b); + pin.up.packet_len = ofpbuf_size(&b); + pin.up.reason = OFPR_NO_MATCH; + pin.up.fmd.in_port = OFPP_LOCAL; + pin.send_len = ofpbuf_size(&b); + pin.miss_type = OFPROTO_PACKET_IN_NO_MISS; connmgr_send_packet_in(fo->connmgr, &pin); ofpbuf_uninit(&b); @@ -181,6 +182,7 @@ fail_open_run(struct fail_open *fo) * controller, exits fail open mode. */ void fail_open_maybe_recover(struct fail_open *fo) + OVS_EXCLUDED(ofproto_mutex) { if (fail_open_is_active(fo) && connmgr_is_any_controller_admitted(fo->connmgr)) { @@ -190,6 +192,7 @@ fail_open_maybe_recover(struct fail_open *fo) static void fail_open_recover(struct fail_open *fo) + OVS_EXCLUDED(ofproto_mutex) { struct match match; @@ -227,7 +230,7 @@ fail_open_flushed(struct fail_open *fo) match_init_catchall(&match); ofproto_add_flow(fo->ofproto, &match, FAIL_OPEN_PRIORITY, - ofpacts.data, ofpacts.size); + ofpbuf_data(&ofpacts), ofpbuf_size(&ofpacts)); ofpbuf_uninit(&ofpacts); } @@ -249,6 +252,7 @@ fail_open_create(struct ofproto *ofproto, struct connmgr *mgr) /* Destroys 'fo'. */ void fail_open_destroy(struct fail_open *fo) + OVS_EXCLUDED(ofproto_mutex) { if (fo) { if (fail_open_is_active(fo)) {