summaryrefslogtreecommitdiff
path: root/usr.sbin/ldpd/ldpd.h
diff options
context:
space:
mode:
authorRenato Westphal <renato@cvs.openbsd.org>2016-07-01 23:33:47 +0000
committerRenato Westphal <renato@cvs.openbsd.org>2016-07-01 23:33:47 +0000
commitb0e895600dbc97157dbeb3c284253888aafacecf (patch)
treed7cb3a4dbb7693c1cb67b543f01281c36decb08b /usr.sbin/ldpd/ldpd.h
parent2d65c4f7cd8db7125bb35dfe33fffd414d78888d (diff)
Be more compliant with RFC 4447.
When sending a label withdraw during the pseudowire Control Word negotiation, append a "Wrong C-bit" status TLV after the FEC TLV (in conformance to RFC 4447 section 6.2). Apparently this has no use other than aiding in troubleshooting. Also, extend the recv_labelmessage() function to accept Status TLVs and ignore them instead of shutting down the session.
Diffstat (limited to 'usr.sbin/ldpd/ldpd.h')
-rw-r--r--usr.sbin/ldpd/ldpd.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/usr.sbin/ldpd/ldpd.h b/usr.sbin/ldpd/ldpd.h
index 03a90a46a12..de7902f381b 100644
--- a/usr.sbin/ldpd/ldpd.h
+++ b/usr.sbin/ldpd/ldpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ldpd.h,v 1.78 2016/07/01 23:14:31 renato Exp $ */
+/* $OpenBSD: ldpd.h,v 1.79 2016/07/01 23:33:46 renato Exp $ */
/*
* Copyright (c) 2013, 2016 Renato Westphal <renato@openbsd.org>
@@ -205,16 +205,22 @@ struct map {
uint16_t ifmtu;
} pwid;
} fec;
+ struct {
+ uint32_t code;
+ uint32_t msg_id;
+ uint16_t msg_type;
+ } status;
uint32_t label;
uint32_t requestid;
uint32_t pw_status;
uint8_t flags;
};
#define F_MAP_REQ_ID 0x01 /* optional request message id present */
-#define F_MAP_PW_CWORD 0x02 /* pseudowire control word */
-#define F_MAP_PW_ID 0x04 /* pseudowire connection id */
-#define F_MAP_PW_IFMTU 0x08 /* pseudowire interface parameter */
-#define F_MAP_PW_STATUS 0x10 /* pseudowire status */
+#define F_MAP_STATUS 0x02 /* status */
+#define F_MAP_PW_CWORD 0x04 /* pseudowire control word */
+#define F_MAP_PW_ID 0x08 /* pseudowire connection id */
+#define F_MAP_PW_IFMTU 0x10 /* pseudowire interface parameter */
+#define F_MAP_PW_STATUS 0x20 /* pseudowire status */
struct notify_msg {
uint32_t status;