diff options
| author | wumu.zsl <wumu.zsl@alibaba-inc.com> | 2025-01-21 07:59:50 +0000 | 
|---|---|---|
| committer | wumu.zsl <wumu.zsl@alibaba-inc.com> | 2025-01-23 02:59:55 +0000 | 
| commit | 0ef6003167473a54bdb6db1ccf29c95babb17752 (patch) | |
| tree | 572feacb361c6e439c37a47f17b9aad58a3f1798 /bfdd/ptm_adapter.c | |
| parent | 3548b3004d7f01b7a61926dcee1496a1a5bd9de8 (diff) | |
bfdd: add bfdname info when notify bfd status to PTM
Signed-off-by: wumu.zsl <wumu.zsl@alibaba-inc.com>
Diffstat (limited to 'bfdd/ptm_adapter.c')
| -rw-r--r-- | bfdd/ptm_adapter.c | 22 | 
1 files changed, 16 insertions, 6 deletions
diff --git a/bfdd/ptm_adapter.c b/bfdd/ptm_adapter.c index f6ebefb7be..74f2d39878 100644 --- a/bfdd/ptm_adapter.c +++ b/bfdd/ptm_adapter.c @@ -70,10 +70,10 @@ static void bfdd_client_deregister(struct stream *msg);  PRINTFRR(2, 3)  static void debug_printbpc(const struct bfd_peer_cfg *bpc, const char *fmt, ...)  { -	char timers[3][128] = {}; +	char timers[3][160] = {};  	char minttl_str[32] = {}; -	char addr[3][128] = {}; -	char profile[128] = {}; +	char addr[3][160] = {}; +	char profile[160] = {};  	char cbit_str[32];  	char msgbuf[512];  	va_list vl; @@ -134,7 +134,9 @@ static void _ptm_bfd_session_del(struct bfd_session *bs, uint8_t diag)  	/* Change state and notify peer. */  	bs->ses_state = PTM_BFD_DOWN;  	bs->local_diag = diag; -	ptm_bfd_snd(bs, 0); + +	if (bs->bfd_mode == BFD_MODE_TYPE_BFD) +		ptm_bfd_snd(bs, 0);  	/* Session reached refcount == 0, lets delete it. */  	if (bs->refcount == 0) { @@ -200,6 +202,8 @@ int ptm_bfd_notify(struct bfd_session *bs, uint8_t notify_state)  	 *     - 16 bytes: ipv6  	 *   - c: prefix length  	 * - c: cbit +	 * - c: bfd name len +	 * - Xbytes: bfd name  	 *  	 * Commands: ZEBRA_BFD_DEST_REPLAY  	 * @@ -238,9 +242,12 @@ int ptm_bfd_notify(struct bfd_session *bs, uint8_t notify_state)  	case PTM_BFD_DOWN:  	case PTM_BFD_INIT: -		stream_putl(msg, BFD_STATUS_DOWN); -		break; +		if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN)) +			stream_putl(msg, BFD_STATUS_ADMIN_DOWN); +		else +			stream_putl(msg, BFD_STATUS_DOWN); +		break;  	default:  		stream_putl(msg, BFD_STATUS_UNKNOWN);  		break; @@ -251,6 +258,9 @@ int ptm_bfd_notify(struct bfd_session *bs, uint8_t notify_state)  	stream_putc(msg, bs->remote_cbit); +	stream_putc(msg, strlen(bs->bfd_name)); +	stream_put(msg, bs->bfd_name, strlen(bs->bfd_name)); +  	/* Write packet size. */  	stream_putw_at(msg, 0, stream_get_endp(msg));  | 
