X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Ffail-open.c;h=99bbccd3178f88a1b66fb5bf1043b4bd9bb9b190;hb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;hp=541bb054bd37bae7db3a0836337cbdeebf7dd04a;hpb=5bee6e2638989aff14429c5a85fa7cef196f2106;p=sliver-openvswitch.git diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c index 541bb054b..99bbccd31 100644 --- a/ofproto/fail-open.c +++ b/ofproto/fail-open.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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. */ @@ -216,7 +220,7 @@ fail_open_flushed(struct fail_open *fo) /* Set up a flow that matches every packet and directs them to * OFPP_NORMAL. */ memset(&action, 0, sizeof action); - action.type = htons(OFPAT_OUTPUT); + action.type = htons(OFPAT10_OUTPUT); action.output.len = htons(sizeof action); action.output.port = htons(OFPP_NORMAL);