summaryrefslogtreecommitdiffstats
path: root/zebra/label_manager.h
diff options
context:
space:
mode:
authorßingen <bingen@voltanet.io>2017-04-26 11:50:21 +0200
committerßingen <bingen@voltanet.io>2017-05-11 19:20:08 +0200
commit5c7ef8dc4fee3521a225aec0a3d42912a5bfd247 (patch)
tree44fbde87a6fd0b8373c92f895109654d6fe3aea2 /zebra/label_manager.h
parentbgpd: fixup bgpd: allow VPN next hop to be different AFI than NLRI next (diff)
downloadfrr-5c7ef8dc4fee3521a225aec0a3d42912a5bfd247.tar.xz
frr-5c7ef8dc4fee3521a225aec0a3d42912a5bfd247.zip
lm: Make relay label manager async
To avoid blocking zebra when it's acting as a proxy for an external label manager. Besides: Fix get chunk reconnection. Socket was still being destroyed on failure, so next attempt would never work. Filter out unwanted messages in lm sync sock. Until LDE client sends ZEBRA_LABEL_MANAGER_CONNECT message, zserv doesn't know which kind of client it is, so it might enqueue unwanted messages like interface add, interface up, etc. Changes in this commit discard those messages in the client side in case they arrive before the expected response. Change function name for zclient_connect in label manager to avoid confusion with zclient one. Signed-off-by: ßingen <bingen@voltanet.io>
Diffstat (limited to 'zebra/label_manager.h')
-rw-r--r--zebra/label_manager.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/zebra/label_manager.h b/zebra/label_manager.h
index 0c6a5ebc7..fd0b3b549 100644
--- a/zebra/label_manager.h
+++ b/zebra/label_manager.h
@@ -62,7 +62,7 @@ struct label_manager {
bool lm_is_external;
-int zread_relay_label_manager_request(int cmd, struct zserv *zserv);
+int zread_relay_label_manager_request(int cmd, struct zserv *zserv, vrf_id_t vrf_id);
void label_manager_init(char *lm_zserv_path);
struct label_manager_chunk *assign_label_chunk(u_char proto, u_short instance,
u_char keep, uint32_t size);