Skip to content

Commit

Permalink
ofproto-dpif-xlate: Use bfd forwarding status in fast-failover groups.
Browse files Browse the repository at this point in the history
Integration of each interface' status as confirmed by BFD into the
FastFailover Group table. When BFD is configured and function
bfd_forwarding() reports false, odp_port_is_alive also reports false in
order to have a watched interface report false and omit to another
backup.

Test-suite has been succesfully run, as well as testing with ICMP echo
requests and replies that traffic was succesfully rerouted over the
backup path. More extensive load-consumption tests with a function that
only checked whether (bfd->state == STATE_UP) have been succesfully
performed, but was later changed to use the larger function
bfd_forwarding() as it captures all possible exceptions and is properly
mutually excluded.

Signed-off-by: Niels van Adrichem <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
Niels van Adrichem authored and blp committed Oct 16, 2014
1 parent cda5232 commit 10ab94f
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions ofproto/ofproto-dpif-xlate.c
Original file line number Diff line number Diff line change
Expand Up @@ -1247,13 +1247,19 @@ static bool
odp_port_is_alive(const struct xlate_ctx *ctx, ofp_port_t ofp_port)
{
struct xport *xport;
struct bfd *bfd;

xport = get_ofp_port(ctx->xbridge, ofp_port);
if (!xport || xport->config & OFPUTIL_PC_PORT_DOWN ||
xport->state & OFPUTIL_PS_LINK_DOWN) {
return false;
}

bfd = xport->bfd;
if (bfd && !bfd_forwarding(bfd)) {
return false;
}

return true;
}

Expand Down

0 comments on commit 10ab94f

Please sign in to comment.