]> git.puffer.fish Git - mirror/frr.git/commitdiff
ldpd: LDP does not always send traffic with correct DSCP value. 6352/head
authorKaren Schoener <karen.voltanet.io>
Tue, 5 May 2020 21:59:00 +0000 (17:59 -0400)
committerKaren Schoener <karen@volta.io>
Wed, 6 May 2020 13:46:07 +0000 (09:46 -0400)
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 <karen@voltanet.io>
ldpd/neighbor.c

index ae51490c0750cde948121c3ec18e1aaf716cc34f..1aa53151e648210d92b94ebbf41d390bc5cb0dac 100644 (file)
@@ -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)