X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Ffail-open.c;h=edc939772f4f42e92fa96a5d4c2ea4a11b16d359;hb=8d25d9a254786eeb164f4fe4cef28b07378afaa2;hp=6fb1ea8a6b3bb30619f66c44bc208c1d07f8ae3e;hpb=08f94c0e1a47518e73f954af8f61eb0df31ac8bd;p=openvswitch diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c index 6fb1ea8a..edc93977 100644 --- a/ofproto/fail-open.c +++ b/ofproto/fail-open.c @@ -115,19 +115,23 @@ fail_open_is_active(const struct fail_open *fo) static void send_bogus_packet_ins(struct fail_open *fo) { + struct ofputil_packet_in pin; uint8_t mac[ETH_ADDR_LEN]; - struct ofpbuf *opi; struct ofpbuf b; - /* Compose ofp_packet_in. */ ofpbuf_init(&b, 128); eth_addr_nicira_random(mac); compose_benign_packet(&b, "Open vSwitch Controller Probe", 0xa033, mac); - opi = make_packet_in(pktbuf_get_null(), OFPP_LOCAL, OFPR_NO_MATCH, &b, 64); - ofpbuf_uninit(&b); - /* Send. */ - connmgr_broadcast(fo->connmgr, opi); + 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; + connmgr_send_packet_in(fo->connmgr, &pin); + + ofpbuf_uninit(&b); } /* Enter fail-open mode if we should be in it. */