sorry please ignore the previous email... didn't intend to broadcast... sorry for the spam,
On Tue, Nov 19, 2013 at 9:07 AM, Alex Wang <al...@nicira.com> wrote: > Every other day reminder~, could you review this patch~? thx > > > On Fri, Nov 15, 2013 at 1:58 PM, Alex Wang <al...@nicira.com> wrote: > >> This commit adds a forwarding flag to "struct bfd". And >> bfd_forwarding__() will update this flag at each invocation. >> >> Signed-off-by: Alex Wang <al...@nicira.com> >> --- >> lib/bfd.c | 30 +++++++++++++++++++----------- >> lib/bfd.h | 2 +- >> 2 files changed, 20 insertions(+), 12 deletions(-) >> >> diff --git a/lib/bfd.c b/lib/bfd.c >> index 740f4fc..7c214a5 100644 >> --- a/lib/bfd.c >> +++ b/lib/bfd.c >> @@ -187,6 +187,7 @@ struct bfd { >> long long int next_tx; /* Next TX time. */ >> long long int detect_time; /* RFC 5880 6.8.4 Detection time. */ >> >> + bool forwarding; /* Interface capability of packet I/O. >> */ >> int forwarding_override; /* Manual override of 'forwarding' >> status. */ >> >> atomic_bool check_tnl_key; /* Verify tunnel key of inbound >> packets? */ >> @@ -212,7 +213,7 @@ static struct ovs_mutex mutex = OVS_MUTEX_INITIALIZER; >> static struct hmap all_bfds__ = HMAP_INITIALIZER(&all_bfds__); >> static struct hmap *const all_bfds OVS_GUARDED_BY(mutex) = &all_bfds__; >> >> -static bool bfd_forwarding__(const struct bfd *) OVS_REQUIRES(mutex); >> +static bool bfd_forwarding__(struct bfd *) OVS_REQUIRES(mutex); >> static bool bfd_in_poll(const struct bfd *) OVS_REQUIRES(mutex); >> static void bfd_poll(struct bfd *bfd) OVS_REQUIRES(mutex); >> static const char *bfd_diag_str(enum diag) OVS_REQUIRES(mutex); >> @@ -246,7 +247,7 @@ static struct vlog_rate_limit rl = >> VLOG_RATE_LIMIT_INIT(20, 20); >> /* Returns true if the interface on which 'bfd' is running may be used to >> * forward traffic according to the BFD session state. */ >> bool >> -bfd_forwarding(const struct bfd *bfd) OVS_EXCLUDED(mutex) >> +bfd_forwarding(struct bfd *bfd) OVS_EXCLUDED(mutex) >> { >> bool ret; >> >> @@ -263,7 +264,7 @@ bfd_get_status(const struct bfd *bfd, struct smap >> *smap) >> OVS_EXCLUDED(mutex) >> { >> ovs_mutex_lock(&mutex); >> - smap_add(smap, "forwarding", bfd_forwarding__(bfd)? "true" : >> "false"); >> + smap_add(smap, "forwarding", bfd->forwarding ? "true" : "false"); >> smap_add(smap, "state", bfd_state_str(bfd->state)); >> smap_add(smap, "diagnostic", bfd_diag_str(bfd->diag)); >> >> @@ -312,6 +313,7 @@ bfd_configure(struct bfd *bfd, const char *name, >> const struct smap *cfg, >> if (!bfd) { >> bfd = xzalloc(sizeof *bfd); >> bfd->name = xstrdup(name); >> + bfd->forwarding = false; >> bfd->forwarding_override = -1; >> bfd->disc = generate_discriminator(); >> hmap_insert(all_bfds, &bfd->node, bfd->disc); >> @@ -805,8 +807,9 @@ bfd_set_netdev(struct bfd *bfd, const struct netdev >> *netdev) >> } >> >> >> +/* Updates the forwarding flag. */ >> static bool >> -bfd_forwarding__(const struct bfd *bfd) OVS_REQUIRES(mutex) >> +bfd_forwarding__(struct bfd *bfd) OVS_REQUIRES(mutex) >> { >> long long int time; >> >> @@ -815,11 +818,12 @@ bfd_forwarding__(const struct bfd *bfd) >> OVS_REQUIRES(mutex) >> } >> >> time = bfd->forwarding_if_rx_detect_time; >> - return (bfd->state == STATE_UP >> - || (bfd->forwarding_if_rx && time > time_msec())) >> - && bfd->rmt_diag != DIAG_PATH_DOWN >> - && bfd->rmt_diag != DIAG_CPATH_DOWN >> - && bfd->rmt_diag != DIAG_RCPATH_DOWN; >> + bfd->forwarding = (bfd->state == STATE_UP >> + || (bfd->forwarding_if_rx && time > time_msec())) >> + && bfd->rmt_diag != DIAG_PATH_DOWN >> + && bfd->rmt_diag != DIAG_CPATH_DOWN >> + && bfd->rmt_diag != DIAG_RCPATH_DOWN; >> + return bfd->forwarding; >> } >> >> /* Helpers. */ >> @@ -1020,6 +1024,9 @@ bfd_set_state(struct bfd *bfd, enum state state, >> enum diag diag) >> bfd_decay_update(bfd); >> } >> } >> + >> + /* Updates the forwarding flag. */ >> + bfd_forwarding__(bfd); >> } >> >> static uint64_t >> @@ -1081,6 +1088,8 @@ bfd_check_rx(struct bfd *bfd) OVS_REQUIRES(mutex) >> } >> if (bfd->forwarding_if_rx && diff > 0) { >> bfd_forwarding_if_rx_update(bfd); >> + /* Updates the forwarding flag. */ >> + bfd_forwarding__(bfd); >> } >> } >> >> @@ -1135,8 +1144,7 @@ bfd_find_by_name(const char *name) >> OVS_REQUIRES(mutex) >> static void >> bfd_put_details(struct ds *ds, const struct bfd *bfd) OVS_REQUIRES(mutex) >> { >> - ds_put_format(ds, "\tForwarding: %s\n", >> - bfd_forwarding__(bfd) ? "true" : "false"); >> + ds_put_format(ds, "\tForwarding: %s\n", bfd->forwarding ? "true" : >> "false"); >> ds_put_format(ds, "\tDetect Multiplier: %d\n", bfd->mult); >> ds_put_format(ds, "\tConcatenated Path Down: %s\n", >> bfd->cpath_down ? "true" : "false"); >> diff --git a/lib/bfd.h b/lib/bfd.h >> index f49a3d6..0ad86e9 100644 >> --- a/lib/bfd.h >> +++ b/lib/bfd.h >> @@ -46,7 +46,7 @@ struct bfd *bfd_configure(struct bfd *, const char >> *name, >> struct bfd *bfd_ref(const struct bfd *); >> void bfd_unref(struct bfd *); >> >> -bool bfd_forwarding(const struct bfd *); >> +bool bfd_forwarding(struct bfd *); >> void bfd_get_status(const struct bfd *, struct smap *); >> void bfd_set_netdev(struct bfd *, const struct netdev *); >> long long int bfd_wake_time(const struct bfd *); >> -- >> 1.7.9.5 >> >> >
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev