git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netdev-vport: Checks tunnel status change when route-table is reset.
[sliver-openvswitch.git]
/
lib
/
route-table.c
diff --git
a/lib/route-table.c
b/lib/route-table.c
index
8f5b733
..
2986d3d
100644
(file)
--- a/
lib/route-table.c
+++ b/
lib/route-table.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 2011, 2012, 2013 Nicira, Inc.
+ * Copyright (c) 2011, 2012, 2013
, 2014
Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-65,6
+65,10
@@
struct name_node {
static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
+/* Global change number for route-table, which should be incremented
+ * every time route_table_reset() is called. */
+static uint64_t rt_change_seq;
+
static unsigned int register_count = 0;
static struct nln *nln = NULL;
static struct route_table_msg rtmsg;
static unsigned int register_count = 0;
static struct nln *nln = NULL;
static struct route_table_msg rtmsg;
@@
-154,6
+158,12
@@
route_table_get_ifindex(ovs_be32 ip_, int *ifindex)
return false;
}
return false;
}
+uint64_t
+route_table_get_change_seq(void)
+{
+ return rt_change_seq;
+}
+
/* Users of the route_table module should register themselves with this
* function before making any other route_table function calls. */
void
/* Users of the route_table module should register themselves with this
* function before making any other route_table function calls. */
void
@@
-205,6
+215,10
@@
route_table_run(void)
if (nln) {
rtnetlink_link_run();
nln_run(nln);
if (nln) {
rtnetlink_link_run();
nln_run(nln);
+
+ if (!route_table_valid) {
+ route_table_reset();
+ }
}
}
}
}
@@
-228,6
+242,7
@@
route_table_reset(void)
route_map_clear();
route_table_valid = true;
route_map_clear();
route_table_valid = true;
+ rt_change_seq++;
ofpbuf_init(&request, 0);
ofpbuf_init(&request, 0);