Skip to content

Commit

Permalink
linux: Add definitions for Multipath TCP
Browse files Browse the repository at this point in the history
We leave IPPROTO_MAX as is for the time being. However, in recent
kernel releases IPPROTO_MAX is actually higher and reflects the
addition of IPPROTO_MPTCP.
  • Loading branch information
george-hopkins committed Oct 21, 2020
1 parent a410c35 commit 2a212c8
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 1 deletion.
4 changes: 4 additions & 0 deletions libc-test/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2649,6 +2649,10 @@ fn test_linux(target: &str) {
// Require Linux kernel 5.6:
"VMADDR_CID_LOCAL" => true,

// IPPROTO_MAX was increased in 5.6 for IPPROTO_MPTCP:
| "IPPROTO_MAX"
| "IPPROTO_MPTCP" => true,

// Defined in kernel headers but musl removes it; need musl 1.2 for definition in musl
// headers.
"P_PIDFD" => true,
Expand Down
4 changes: 4 additions & 0 deletions src/unix/linux_like/android/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1008,6 +1008,8 @@ pub const SOCK_SEQPACKET: ::c_int = 5;
pub const SOCK_DCCP: ::c_int = 6;
pub const SOCK_PACKET: ::c_int = 10;

pub const IPPROTO_MAX: ::c_int = 256;

pub const SOL_SOCKET: ::c_int = 1;
pub const SOL_SCTP: ::c_int = 132;
pub const SOL_IPX: ::c_int = 256;
Expand Down Expand Up @@ -1068,6 +1070,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 TCP_ULP: ::c_int = 31;

pub const IPTOS_ECN_NOTECT: u8 = 0x00;

pub const O_ACCMODE: ::c_int = 3;
Expand Down
2 changes: 2 additions & 0 deletions src/unix/linux_like/emscripten/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1557,6 +1557,8 @@ pub const SOCK_STREAM: ::c_int = 1;
pub const SOCK_DGRAM: ::c_int = 2;
pub const SOCK_SEQPACKET: ::c_int = 5;

pub const IPPROTO_MAX: ::c_int = 256;

pub const SOL_SOCKET: ::c_int = 1;

pub const SO_REUSEADDR: ::c_int = 2;
Expand Down
10 changes: 10 additions & 0 deletions src/unix/linux_like/linux/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1228,6 +1228,7 @@ pub const RTLD_NOW: ::c_int = 0x2;
pub const AT_EACCESS: ::c_int = 0x200;

pub const TCP_MD5SIG: ::c_int = 14;
pub const TCP_ULP: ::c_int = 31;

align_const! {
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
Expand Down Expand Up @@ -1262,6 +1263,15 @@ pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000;

// netinet/in.h
// NOTE: These are in addition to the constants defined in src/unix/mod.rs

/// Multipath TCP
pub const IPPROTO_MPTCP: ::c_int = 262;
#[deprecated(
since = "0.2.79",
note = "IPPROTO_MAX depends on the kernel version on the target system"
)]
pub const IPPROTO_MAX: ::c_int = 263;

pub const AF_IB: ::c_int = 27;
pub const AF_MPLS: ::c_int = 28;
pub const AF_NFC: ::c_int = 39;
Expand Down
1 change: 0 additions & 1 deletion src/unix/linux_like/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -869,7 +869,6 @@ pub const IPPROTO_UDPLITE: ::c_int = 136;
pub const IPPROTO_MPLS: ::c_int = 137;
/// raw IP packet
pub const IPPROTO_RAW: ::c_int = 255;
pub const IPPROTO_MAX: ::c_int = 256;

pub const MCAST_EXCLUDE: ::c_int = 0;
pub const MCAST_INCLUDE: ::c_int = 1;
Expand Down

0 comments on commit 2a212c8

Please sign in to comment.