X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Ffail-open.c;h=edc939772f4f42e92fa96a5d4c2ea4a11b16d359;hb=a8393c7ca44764bf01d68de19f81f6d6352207ba;hp=197e5183e89b940e54d542aa1ec79d39be9f0e0c;hpb=b2fda3effc787f265b5ad5dfa967ac00627bd075;p=sliver-openvswitch.git diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c index 197e5183e..edc939772 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 Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,9 +26,9 @@ #include "ofp-util.h" #include "ofpbuf.h" #include "ofproto.h" +#include "ofproto-provider.h" #include "pktbuf.h" #include "poll-loop.h" -#include "private.h" #include "rconn.h" #include "timeval.h" #include "vconn.h" @@ -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);