From 94e30dfacd723b8667eadbe88d3991a7c43b685c Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 14 Dec 2018 00:57:46 -0800 Subject: Expose unix ECN-related constants --- src/unix/bsd/mod.rs | 2 ++ src/unix/mod.rs | 6 ++++++ src/unix/notbsd/mod.rs | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 770b9b9818..f4de32425d 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -183,6 +183,8 @@ pub const IP_MULTICAST_IF: ::c_int = 9; pub const IP_MULTICAST_TTL: ::c_int = 10; pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_TOS: ::c_int = 1; + pub const IPV6_UNICAST_HOPS: ::c_int = 4; pub const IPV6_MULTICAST_IF: ::c_int = 9; pub const IPV6_MULTICAST_HOPS: ::c_int = 10; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 370d7f48cb..5a293d5324 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -296,6 +296,12 @@ pub const IPPROTO_UDP: ::c_int = 17; pub const IPPROTO_IP: ::c_int = 0; pub const IPPROTO_IPV6: ::c_int = 41; +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; + pub const INADDR_LOOPBACK: in_addr_t = 2130706433; pub const INADDR_ANY: in_addr_t = 0; pub const INADDR_BROADCAST: in_addr_t = 4294967295; diff --git a/src/unix/notbsd/mod.rs b/src/unix/notbsd/mod.rs index 9557d1b3ad..e7a635153c 100644 --- a/src/unix/notbsd/mod.rs +++ b/src/unix/notbsd/mod.rs @@ -623,9 +623,11 @@ pub const SOCK_RDM: ::c_int = 4; pub const IP_MULTICAST_IF: ::c_int = 32; pub const IP_MULTICAST_TTL: ::c_int = 33; pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_TOS: ::c_int = 1; pub const IP_TTL: ::c_int = 2; pub const IP_HDRINCL: ::c_int = 3; pub const IP_PKTINFO: ::c_int = 8; +pub const IP_RECVTOS: ::c_int = 13; pub const IP_ADD_MEMBERSHIP: ::c_int = 35; pub const IP_DROP_MEMBERSHIP: ::c_int = 36; pub const IP_TRANSPARENT: ::c_int = 19; @@ -1087,6 +1089,10 @@ f! { pub fn IPOPT_NUMBER(o: u8) -> u8 { o & IPOPT_NUMBER_MASK } + + pub fn IPTOS_ECN(x: u8) -> u8 { + x & super::IPTOS_ECN_MASK + } } extern { -- cgit v1.2.1 From ba5bfc6c072b25f80c7a42ab8605e8f16996f4bb Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 14 Dec 2018 19:13:53 -0800 Subject: Fix BSD IP_TOS value --- src/unix/bsd/mod.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index f4de32425d..dd4508acce 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -179,12 +179,11 @@ pub const SIG_SETMASK: ::c_int = 3; pub const SIG_BLOCK: ::c_int = 0x1; pub const SIG_UNBLOCK: ::c_int = 0x2; +pub const IP_TOS: ::c_int = 3; pub const IP_MULTICAST_IF: ::c_int = 9; pub const IP_MULTICAST_TTL: ::c_int = 10; pub const IP_MULTICAST_LOOP: ::c_int = 11; -pub const IP_TOS: ::c_int = 1; - pub const IPV6_UNICAST_HOPS: ::c_int = 4; pub const IPV6_MULTICAST_IF: ::c_int = 9; pub const IPV6_MULTICAST_HOPS: ::c_int = 10; -- cgit v1.2.1 From 0f9d41ff8a34a9a822b2a514e8abce6d853c5306 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 14 Dec 2018 19:14:01 -0800 Subject: Style fix --- src/unix/notbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/notbsd/mod.rs b/src/unix/notbsd/mod.rs index e7a635153c..143d7edeab 100644 --- a/src/unix/notbsd/mod.rs +++ b/src/unix/notbsd/mod.rs @@ -1091,7 +1091,7 @@ f! { } pub fn IPTOS_ECN(x: u8) -> u8 { - x & super::IPTOS_ECN_MASK + x & ::IPTOS_ECN_MASK } } -- cgit v1.2.1 From ae6a26284bcdbc19d6dd9d82f598aa0c04b3a898 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 14 Dec 2018 19:14:27 -0800 Subject: Handle inconsistent spelling --- src/unix/bsd/mod.rs | 2 ++ src/unix/mod.rs | 1 - src/unix/notbsd/android/mod.rs | 2 ++ src/unix/notbsd/linux/mod.rs | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index dd4508acce..b0788124ae 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -190,6 +190,8 @@ pub const IPV6_MULTICAST_HOPS: ::c_int = 10; pub const IPV6_MULTICAST_LOOP: ::c_int = 11; pub const IPV6_V6ONLY: ::c_int = 27; +pub const IPTOS_ECN_NOTECT: u8 = 0x00; + pub const ST_RDONLY: ::c_ulong = 1; pub const SCM_RIGHTS: ::c_int = 0x01; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 5a293d5324..2e3d7a48fe 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -297,7 +297,6 @@ pub const IPPROTO_IP: ::c_int = 0; pub const IPPROTO_IPV6: ::c_int = 41; pub const IPTOS_ECN_MASK: u8 = 0x03; -pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; pub const IPTOS_ECN_ECT1: u8 = 0x01; pub const IPTOS_ECN_ECT0: u8 = 0x02; pub const IPTOS_ECN_CE: u8 = 0x03; diff --git a/src/unix/notbsd/android/mod.rs b/src/unix/notbsd/android/mod.rs index 31e0c44db4..972281c828 100644 --- a/src/unix/notbsd/android/mod.rs +++ b/src/unix/notbsd/android/mod.rs @@ -666,6 +666,8 @@ pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; +pub const IPTOS_ECN_NOTECT: u8 = 0x00; + pub const O_ACCMODE: ::c_int = 3; pub const O_APPEND: ::c_int = 1024; pub const O_CREAT: ::c_int = 64; diff --git a/src/unix/notbsd/linux/mod.rs b/src/unix/notbsd/linux/mod.rs index b8da914a8d..8669a06ca5 100644 --- a/src/unix/notbsd/linux/mod.rs +++ b/src/unix/notbsd/linux/mod.rs @@ -1612,6 +1612,8 @@ pub const SIOCSIFMAP: ::c_ulong = 0x00008971; pub const IPTOS_TOS_MASK: u8 = 0x1E; pub const IPTOS_PREC_MASK: u8 = 0xE0; +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; + pub const RTF_UP: ::c_ushort = 0x0001; pub const RTF_GATEWAY: ::c_ushort = 0x0002; -- cgit v1.2.1 From 076edb21b16dd743b9b2345c397ccde1178f5263 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 14 Dec 2018 19:14:42 -0800 Subject: Add IPV6 analogs --- src/unix/bsd/apple/mod.rs | 2 ++ src/unix/bsd/freebsdlike/mod.rs | 2 ++ src/unix/bsd/netbsdlike/mod.rs | 2 ++ src/unix/notbsd/mod.rs | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index bb07cc4872..f215836097 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1575,6 +1575,8 @@ pub const IP_DROP_MEMBERSHIP: ::c_int = 13; pub const IP_PKTINFO: ::c_int = 26; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; +pub const IPV6_RECVTCLASS: ::c_int = 35; +pub const IPV6_TCLASS: ::c_int = 36; pub const IPV6_PKTINFO: ::c_int = 46; pub const IPV6_RECVPKTINFO: ::c_int = 61; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index cb3dba4004..1dc559aff3 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -668,6 +668,8 @@ pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_RECVPKTINFO: ::c_int = 36; pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61; pub const TCP_NOPUSH: ::c_int = 4; pub const TCP_NOOPT: ::c_int = 8; diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index bfd541d8a0..abd014c461 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -430,6 +430,8 @@ pub const IP_ADD_MEMBERSHIP: ::c_int = 12; pub const IP_DROP_MEMBERSHIP: ::c_int = 13; pub const IPV6_RECVPKTINFO: ::c_int = 36; pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61; pub const SOL_SOCKET: ::c_int = 0xffff; pub const SO_DEBUG: ::c_int = 0x01; diff --git a/src/unix/notbsd/mod.rs b/src/unix/notbsd/mod.rs index 143d7edeab..52375fc92a 100644 --- a/src/unix/notbsd/mod.rs +++ b/src/unix/notbsd/mod.rs @@ -640,6 +640,8 @@ pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; pub const IPV6_V6ONLY: ::c_int = 26; pub const IPV6_RECVPKTINFO: ::c_int = 49; pub const IPV6_PKTINFO: ::c_int = 50; +pub const IPV6_RECVTCLASS: ::c_int = 66; +pub const IPV6_TCLASS: ::c_int = 67; pub const TCP_NODELAY: ::c_int = 1; pub const TCP_MAXSEG: ::c_int = 2; -- cgit v1.2.1 From 948f2ab622cc2807b4be01841437b1061fa4b300 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Fri, 14 Dec 2018 23:12:47 -0800 Subject: Add BSD IP_RECVTOS definitions --- src/unix/bsd/apple/mod.rs | 1 + src/unix/bsd/freebsdlike/mod.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index f215836097..b89ba25b3c 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1573,6 +1573,7 @@ pub const IP_HDRINCL: ::c_int = 2; pub const IP_ADD_MEMBERSHIP: ::c_int = 12; pub const IP_DROP_MEMBERSHIP: ::c_int = 13; pub const IP_PKTINFO: ::c_int = 26; +pub const IP_RECVTOS: ::c_int = 27; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_RECVTCLASS: ::c_int = 35; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 1dc559aff3..7b7724ac81 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -664,6 +664,7 @@ pub const IP_RECVDSTADDR: ::c_int = 7; pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; pub const IP_ADD_MEMBERSHIP: ::c_int = 12; pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_RECVTOS: ::c_int = 68; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_RECVPKTINFO: ::c_int = 36; -- cgit v1.2.1 From 26c34b7e92f4889c3ffe76c2e119094696d4ebe8 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Sat, 15 Dec 2018 01:18:36 -0800 Subject: No IP_RECVTOS for DragonFlyBSD --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 + src/unix/bsd/freebsdlike/mod.rs | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1ead1665b5..03b19eb7c1 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -803,6 +803,7 @@ pub const TCP_PCAP_OUT: ::c_int = 2048; pub const TCP_PCAP_IN: ::c_int = 4096; pub const IP_BINDANY: ::c_int = 24; +pub const IP_RECVTOS: ::c_int = 68; pub const PF_SLOW: ::c_int = AF_SLOW; pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 7b7724ac81..1dc559aff3 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -664,7 +664,6 @@ pub const IP_RECVDSTADDR: ::c_int = 7; pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; pub const IP_ADD_MEMBERSHIP: ::c_int = 12; pub const IP_DROP_MEMBERSHIP: ::c_int = 13; -pub const IP_RECVTOS: ::c_int = 68; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; pub const IPV6_RECVPKTINFO: ::c_int = 36; -- cgit v1.2.1 From 0de81a6bdfee0af34cb09f4cb2f39e0096af3255 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Sat, 15 Dec 2018 01:39:32 -0800 Subject: Narrow IPTOS_ECN_... definitions --- src/unix/bsd/mod.rs | 4 ++++ src/unix/mod.rs | 5 ----- src/unix/notbsd/mod.rs | 5 +++++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index b0788124ae..03125c9473 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -191,6 +191,10 @@ pub const IPV6_MULTICAST_LOOP: ::c_int = 11; pub const IPV6_V6ONLY: ::c_int = 27; pub const IPTOS_ECN_NOTECT: u8 = 0x00; +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; pub const ST_RDONLY: ::c_ulong = 1; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 2e3d7a48fe..370d7f48cb 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -296,11 +296,6 @@ pub const IPPROTO_UDP: ::c_int = 17; pub const IPPROTO_IP: ::c_int = 0; pub const IPPROTO_IPV6: ::c_int = 41; -pub const IPTOS_ECN_MASK: u8 = 0x03; -pub const IPTOS_ECN_ECT1: u8 = 0x01; -pub const IPTOS_ECN_ECT0: u8 = 0x02; -pub const IPTOS_ECN_CE: u8 = 0x03; - pub const INADDR_LOOPBACK: in_addr_t = 2130706433; pub const INADDR_ANY: in_addr_t = 0; pub const INADDR_BROADCAST: in_addr_t = 4294967295; diff --git a/src/unix/notbsd/mod.rs b/src/unix/notbsd/mod.rs index 52375fc92a..6ff0807da7 100644 --- a/src/unix/notbsd/mod.rs +++ b/src/unix/notbsd/mod.rs @@ -878,6 +878,11 @@ pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40; pub const IPTOS_PREC_PRIORITY: u8 = 0x20; pub const IPTOS_PREC_ROUTINE: u8 = 0x00; +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; + pub const IPOPT_COPY: u8 = 0x80; pub const IPOPT_CLASS_MASK: u8 = 0x60; pub const IPOPT_NUMBER_MASK: u8 = 0x1f; -- cgit v1.2.1