X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Ffail-open.c;h=b29e5af2e4ab20507c84b602c9a37b39ce533706;hb=003ce655b7116d18c86a74c50391e54990346931;hp=2c0a8f33d534faafc628949e6dce808499c2cade;hpb=81a76618be9ea195a1e4a881ba9591728891d10b;p=sliver-openvswitch.git diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c index 2c0a8f33d..b29e5af2e 100644 --- a/ofproto/fail-open.c +++ b/ofproto/fail-open.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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; @@ -211,6 +214,7 @@ fail_open_wait(struct fail_open *fo) void fail_open_flushed(struct fail_open *fo) + OVS_EXCLUDED(ofproto_mutex) { int disconn_secs = connmgr_failure_duration(fo->connmgr); bool open = disconn_secs >= trigger_duration(fo); @@ -226,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); } @@ -248,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)) {