diff options
| author | Pavel Shirshov <pavelsh@microsoft.com> | 2022-05-05 14:16:27 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@pinkbelly.org> | 2022-05-13 14:14:35 -0400 |
| commit | 425bd64be847f1f8dd3c4c24b5a6d8f2fe05fb30 (patch) | |
| tree | db71ae18cda7dee3b4f0f8628c783464976c2f96 /bgpd/bgp_network.c | |
| parent | 64b43136b9c82c5618b9f7282d01c287173ebf01 (diff) | |
bgpd: Allow bgp to control the DSCP session TOS value
Allow BGP to control the TOS DSCP value in the tcp header
via a new command at the bgp global level `bgp session-dscp <0-63>`
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Pavel Shirhov <pavelsh@microsoft.com>
Diffstat (limited to 'bgpd/bgp_network.c')
| -rw-r--r-- | bgpd/bgp_network.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c index e702ee4fdd..77e2a0f53f 100644 --- a/bgpd/bgp_network.c +++ b/bgpd/bgp_network.c @@ -741,11 +741,9 @@ int bgp_connect(struct peer *peer) #ifdef IPTOS_PREC_INTERNETCONTROL frr_with_privs(&bgpd_privs) { if (sockunion_family(&peer->su) == AF_INET) - setsockopt_ipv4_tos(peer->fd, - IPTOS_PREC_INTERNETCONTROL); + setsockopt_ipv4_tos(peer->fd, bm->tcp_dscp); else if (sockunion_family(&peer->su) == AF_INET6) - setsockopt_ipv6_tclass(peer->fd, - IPTOS_PREC_INTERNETCONTROL); + setsockopt_ipv6_tclass(peer->fd, bm->tcp_dscp); } #endif @@ -822,10 +820,9 @@ static int bgp_listener(int sock, struct sockaddr *sa, socklen_t salen, #ifdef IPTOS_PREC_INTERNETCONTROL if (sa->sa_family == AF_INET) - setsockopt_ipv4_tos(sock, IPTOS_PREC_INTERNETCONTROL); + setsockopt_ipv4_tos(sock, bm->tcp_dscp); else if (sa->sa_family == AF_INET6) - setsockopt_ipv6_tclass(sock, - IPTOS_PREC_INTERNETCONTROL); + setsockopt_ipv6_tclass(sock, bm->tcp_dscp); #endif sockopt_v6only(sa->sa_family, sock); |
