Index | Thread | Search

From:
Job Snijders <job@openbsd.org>
Subject:
ospf6d: mark packets with DSCP CS6
To:
tech@openbsd.org
Date:
Tue, 14 May 2024 15:28:29 +0000

Download raw body.

Thread
The same is done in ospfd/packet.c:73

OK?

Index: ospfe.c
===================================================================
RCS file: /cvs/src/usr.sbin/ospf6d/ospfe.c,v
diff -u -p -r1.71 ospfe.c
--- ospfe.c	13 Dec 2023 15:34:43 -0000	1.71
+++ ospfe.c	14 May 2024 15:26:32 -0000
@@ -75,6 +75,7 @@ ospfe(struct ospfd_conf *xconf, int pipe
 	struct passwd	*pw;
 	struct event	 ev_sigint, ev_sigterm;
 	pid_t		 pid;
+	int		 pre = IPTOS_PREC_INTERNETCONTROL;
 
 	switch (pid = fork()) {
 	case -1:
@@ -89,6 +90,10 @@ ospfe(struct ospfd_conf *xconf, int pipe
 	if ((xconf->ospf_socket = socket(AF_INET6,
 	    SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, IPPROTO_OSPF)) == -1)
 		fatal("error creating raw socket");
+
+	if (setsockopt(xconf->ospf_socket, IPPROTO_IPV6, IPV6_TCLASS, &pre,
+	    sizeof(pre)) == -1)
+		fatal("setsockopt IPV6_TCLASS");
 
 	/* set some defaults */
 	if (if_set_mcast_loop(xconf->ospf_socket) == -1)