From def23eb3952f54e4c41f62554e54c00aff016a92 Mon Sep 17 00:00:00 2001 From: Karen Schoener Date: Tue, 5 May 2020 17:59:00 -0400 Subject: [PATCH] ldpd: LDP does not always send traffic with correct DSCP value. Adding code so that the LDP neighbor that does not initiate the TCP connection also sets the DSCP (via setsocketopt). Signed-off-by: Karen Schoener --- ldpd/neighbor.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ldpd/neighbor.c b/ldpd/neighbor.c index ae51490c07..1aa53151e6 100644 --- a/ldpd/neighbor.c +++ b/ldpd/neighbor.c @@ -619,6 +619,16 @@ nbr_establish_connection(struct nbr *nbr) #endif } + if (nbr->af == AF_INET) { + if (sock_set_ipv4_tos(nbr->fd, IPTOS_PREC_INTERNETCONTROL) == -1) + log_warn("%s: lsr-id %s, sock_set_ipv4_tos error", + __func__, inet_ntoa(nbr->id)); + } else if (nbr->af == AF_INET6) { + if (sock_set_ipv6_dscp(nbr->fd, IPTOS_PREC_INTERNETCONTROL) == -1) + log_warn("%s: lsr-id %s, sock_set_ipv6_dscp error", + __func__, inet_ntoa(nbr->id)); + } + addr2sa(nbr->af, &nbr->laddr, 0, &local_su); addr2sa(nbr->af, &nbr->raddr, LDP_PORT, &remote_su); if (nbr->af == AF_INET6 && nbr->raddr_scope) -- 2.39.5