Oh yes, my fault. Please find it below:

---
Index: config.c
===================================================================
--- config.c    (Revision 827)
+++ config.c    (Revision 830)
@@ -236,6 +236,8 @@
        GLOB_ITEM_INT("use_syslog", 1, 0, 1),
        GLOB_ITEM_STR("userDescription", ""),
        GLOB_ITEM_INT("verbose", 0, 0, 1),
+       GLOB_ITEM_INT("tosEventMessage", 56, 0, 63),
+       GLOB_ITEM_INT("tosGeneralMessage", 46, 0, 46)
 };
 
 static enum parser_result
Index: udp.c
===================================================================
--- udp.c       (Revision 827)
+++ udp.c       (Revision 830)
@@ -149,6 +149,29 @@
        return -1;
 }
 
+// setting IP DSCP value here
+static int set_priority(int sock_fd, uint8_t dscp) {
+       int tos;
+       socklen_t tos_len;
+
+       if (!sock_fd) {
+               return 0;
+       }
+
+       tos_len = sizeof(tos);
+       if (getsockopt(sock_fd, SOL_IP, IP_TOS, &tos, &tos_len) < 0) {
+               tos = 0;
+       }
+
+       tos |= dscp<<2;
+       tos_len = sizeof(tos);
+       if (setsockopt(sock_fd, SOL_IP, IP_TOS, &tos, tos_len) < 0) {
+               return -1;
+       }
+
+       return 0;
+}
+
 enum { MC_PRIMARY, MC_PDELAY };
 
 static struct in_addr mcast_addr[2];
@@ -176,11 +199,23 @@
        if (efd < 0)
                goto no_event;
 
+       // set DSCP priority for event messages
+       uint8_t event_dscp = config_get_int(t->cfg, NULL, "tosEventMessage");
+       if(set_priority(efd, event_dscp) < 0) {
+               pr_warning("Could not set COS value for PTP event messages.");
+       }
+
        gfd = open_socket(name, mcast_addr, GENERAL_PORT, ttl);
        if (gfd < 0)
                goto no_general;
 
-       if (sk_timestamping_init(efd, name, ts_type, TRANS_UDP_IPV4))
+       // set DSCP priority for general messages
+       uint8_t general_dscp = config_get_int(t->cfg, NULL, 
"tosGeneralMessage");
+       if(set_priority(gfd, general_dscp) < 0) {
+               pr_warning("Could not set DHCP value for PTP general 
messages.");
+       }
+
+       if (sk_timestamping_init(efd, name, ts_type, TRANS_UDP_IPV4))
                goto no_timestamping;
 
        if (sk_general_init(gfd))

Index: udp6.c
===================================================================
--- udp6.c      (Revision 827)
+++ udp6.c      (Revision 830)
@@ -157,6 +157,29 @@
        return -1;
 }
 
+// setting IP DSCP value here
+static int set_priority(int sock_fd, uint8_t dscp) {
+       int tos;
+       socklen_t tos_len;
+
+       if (!sock_fd) {
+               return 0;
+       }
+
+               tos_len = sizeof(tos);
+       if (getsockopt(sock_fd, SOL_IP, IP_TOS, &tos, &tos_len) < 0) {
+               tos = 0;
+       }
+
+       tos |= dscp<<2;
+       tos_len = sizeof(tos);
+       if (setsockopt(sock_fd, SOL_IP, IP_TOS, &tos, tos_len) < 0) {
+               return -1;
+       }
+
+       return 0;
+}
+
 enum { MC_PRIMARY, MC_PDELAY };
 
 static struct in6_addr mc6_addr[2];
@@ -186,11 +209,23 @@
        if (efd < 0)
                goto no_event;
 
+       // set DSCP priority for event messages
+       uint8_t event_dscp = config_get_int(t->cfg, NULL, "tosEventMessage");
+       if(set_priority(efd, event_dscp) < 0) {
+               pr_warning("Could not set COS value for PTP event messages.");
+       }
+
        gfd = open_socket_ipv6(name, mc6_addr, GENERAL_PORT, &udp6->index, 
hop_limit);
        if (gfd < 0)
                goto no_general;
 
-       if (sk_timestamping_init(efd, name, ts_type, TRANS_UDP_IPV6))
+       // set DSCP priority for general messages
+       uint8_t general_dscp = config_get_int(t->cfg, NULL, 
"tosGeneralMessage");
+       if(set_priority(gfd, general_dscp) < 0) {
+               pr_warning("Could not set DHCP value for PTP general 
messages.");
+       }
+
+       if (sk_timestamping_init(efd, name, ts_type, TRANS_UDP_IPV6))
                goto no_timestamping;
 
        if (sk_general_init(gfd))
---

Best regards
Henry Jesuiter

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to