summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_network.c
diff options
context:
space:
mode:
authorMark O'Brien <mobrien@firebolt.vyatta.com>2008-07-09 13:44:13 -0700
committerMark O'Brien <mobrien@firebolt.vyatta.com>2008-07-09 13:44:13 -0700
commitf63a0b4acc3de4823ba8ac244beb0df74f8213b4 (patch)
treed7d1aea8b4e405791262f64e83c9106bc4aff609 /bgpd/bgp_network.c
parentab5c50927981ae4be0e6bc59f7d0b8ea7f662886 (diff)
parent7ddd7a8c51f05287919e9c4e39756f9a52dac99c (diff)
downloadquagga-f63a0b4acc3de4823ba8ac244beb0df74f8213b4.tar.bz2
quagga-f63a0b4acc3de4823ba8ac244beb0df74f8213b4.tar.xz
Merge branch 'hollywood' of git:/git/vyatta-quagga into hollywood
Diffstat (limited to 'bgpd/bgp_network.c')
-rw-r--r--bgpd/bgp_network.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c
index 4289ce20..e981e718 100644
--- a/bgpd/bgp_network.c
+++ b/bgpd/bgp_network.c
@@ -267,6 +267,11 @@ bgp_connect (struct peer *peer)
sockopt_reuseaddr (peer->fd);
sockopt_reuseport (peer->fd);
+#ifdef IPTOS_PREC_INTERNETCONTROL
+ if (sockunion_family (&peer->su) == AF_INET)
+ setsockopt_ipv4_tos (peer->fd, IPTOS_PREC_INTERNETCONTROL);
+#endif
+
#ifdef HAVE_TCP_MD5SIG
if (CHECK_FLAG (peer->flags, PEER_FLAG_PASSWORD))
if (sockunion_family (&peer->su) == AF_INET)
@@ -362,6 +367,11 @@ bgp_socket (struct bgp *bgp, unsigned short port, char *address)
sockopt_reuseaddr (sock);
sockopt_reuseport (sock);
+#ifdef IPTOS_PREC_INTERNETCONTROL
+ if (ainfo->ai_family == AF_INET)
+ setsockopt_ipv4_tos (sock, IPTOS_PREC_INTERNETCONTROL);
+#endif
+
#if defined(HAVE_TCP_MD5SIG) && defined(IPV6_V6ONLY)
/* We can not apply MD5SIG to an IPv6 socket. If this is an AF_INET6
socket, we'll have to create another socket for IPv4*/
@@ -419,6 +429,7 @@ bgp_socket (struct bgp *bgp, unsigned short port, char *address)
sockopt_reuseaddr (sock);
sockopt_reuseport (sock);
+ setsockopt_ipv4_tos (sock, IPTOS_PREC_INTERNETCONTROL);
memset (&sin, 0, sizeof (struct sockaddr_in));
@@ -486,6 +497,10 @@ bgp_socket (struct bgp *bgp, unsigned short port, char *address)
sockopt_reuseaddr (sock);
sockopt_reuseport (sock);
+#ifdef IPTOS_PREC_INTERNETCONTROL
+ setsockopt_ipv4_tos (sock, IPTOS_PREC_INTERNETCONTROL);
+#endif
+
memset (&sin, 0, sizeof (struct sockaddr_in));
sin.sin_family = AF_INET;