[ovs-dev] [PATCH] BFD: Reconfigure BFD on port deletion.
Pavithra Ramesh
paramesh at vmware.com
Tue May 28 19:35:06 UTC 2013
Invoke the function to reconfigure BFD when a port/interface
is deleted.
Signed-off-by: Pavithra Ramesh <paramesh at vmware.com>
---
lib/bfd.c | 5 +++--
ofproto/ofproto-dpif.c | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/bfd.c b/lib/bfd.c
index 95dad2d..761c91c 100644
--- a/lib/bfd.c
+++ b/lib/bfd.c
@@ -229,7 +229,8 @@ bfd_get_status(const struct bfd *bfd, struct smap *smap)
/* Initializes, destroys, or reconfigures the BFD session 'bfd' (named 'name'),
* according to the database configuration contained in 'cfg'. Takes ownership
* of 'bfd', which may be NULL. Returns a BFD object which may be used as a
- * handle for the session, or NULL if BFD is not enabled according to 'cfg'. */
+ * handle for the session, or NULL if BFD is not enabled according to 'cfg'.
+ * Also returns NULL if cfg is NULL. */
struct bfd *
bfd_configure(struct bfd *bfd, const char *name,
const struct smap *cfg)
@@ -246,7 +247,7 @@ bfd_configure(struct bfd *bfd, const char *name,
init = true;
}
- if (!smap_get_bool(cfg, "enable", false)) {
+ if (!cfg || !smap_get_bool(cfg, "enable", false)) {
if (bfd) {
hmap_remove(&all_bfds, &bfd->node);
free(bfd->name);
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index c4f7d25..6eaa348 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -606,6 +606,7 @@ ofport_dpif_cast(const struct ofport *ofport)
static void port_run(struct ofport_dpif *);
static void port_run_fast(struct ofport_dpif *);
static void port_wait(struct ofport_dpif *);
+static int set_bfd(struct ofport *, const struct smap *);
static int set_cfm(struct ofport *, const struct cfm_settings *);
static void ofport_clear_priorities(struct ofport_dpif *);
static void run_fast_rl(void);
@@ -1869,6 +1870,7 @@ port_destruct(struct ofport *port_)
ofproto->backer->need_revalidate = REV_RECONFIGURE;
bundle_remove(port_);
set_cfm(port_, NULL);
+ set_bfd(port_, NULL);
if (ofproto->sflow) {
dpif_sflow_del_port(ofproto->sflow, port->odp_port);
}
--
1.7.0.4
More information about the dev
mailing list