[ovs-dev] [bug9964 4/5] fail-open: Use connmgr_send_packet_in() instead of connmgr_broadcast().

Ethan Jackson ethan at nicira.com
Wed Mar 14 21:46:42 UTC 2012


Looks good, thank you.

Ethan

On Mon, Mar 12, 2012 at 14:38, Ben Pfaff <blp at nicira.com> wrote:
> Otherwise even controllers that should not receive any packet-ins (via
> enable-async-messages=false) still receive the packet-ins that probe for
> a controller being up when we're in fail-open.
>
> Bug #9964.
> Reported-by: James Schmidt <jschmidt at nicira.com>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
>  ofproto/fail-open.c |   16 ++++++++++------
>  1 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c
> index 6fb1ea8..edc9397 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. */
> --
> 1.7.2.5
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list