diff options
author | Renato Westphal <renato@cvs.openbsd.org> | 2016-07-01 23:33:47 +0000 |
---|---|---|
committer | Renato Westphal <renato@cvs.openbsd.org> | 2016-07-01 23:33:47 +0000 |
commit | b0e895600dbc97157dbeb3c284253888aafacecf (patch) | |
tree | d7cb3a4dbb7693c1cb67b543f01281c36decb08b /usr.sbin/ldpd/ldpd.h | |
parent | 2d65c4f7cd8db7125bb35dfe33fffd414d78888d (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.h | 16 |
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; |