Hey Ethan,
> Basically if the remote endpoint signaled cpath down, and > forwarding_if_rx is enabled, that state should be sticky even if we > lose some of their packets. > We do have a similar issue in BFD. I'm not sure if I fully understand your suggestion. But I have a intuitive fix below: """ +++ b/lib/bfd.c @@ -953,8 +953,10 @@ bfd_set_state(struct bfd *bfd, enum state state, enum diag diag) bfd->diag = diag; if (bfd->state <= STATE_DOWN) { + if (!bfd->forwarding_if_rx) { + bfd->rmt_diag = DIAG_NONE; + } bfd->rmt_state = STATE_DOWN; - bfd->rmt_diag = DIAG_NONE; bfd->rmt_min_rx = 1; bfd->rmt_flags = 0; bfd->rmt_disc = 0; """ So, when "bfd->forwarding_if_rx" is enabled, we always retain the "rmt_diag". And it can only be changed by processing the bfd control packets received. Thanks, Alex Wang,
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev