From bd928e6f09d248c4d5255021d0357d5557fa1625 Mon Sep 17 00:00:00 2001 From: John Smith Date: Mon, 29 May 2023 17:09:29 -0400 Subject: [PATCH] remove netlink fork --- .gitmodules | 3 -- Cargo.lock | 32 +++++++++++++++---- Cargo.toml | 24 +++++++------- external/netlink | 1 - veilid-core/Cargo.toml | 16 +++++++--- .../intf/native/network_interfaces/netlink.rs | 7 ++-- 6 files changed, 52 insertions(+), 31 deletions(-) delete mode 160000 external/netlink diff --git a/.gitmodules b/.gitmodules index 3cdd9159..7485fa44 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,9 +13,6 @@ [submodule "external/keyvaluedb"] path = external/keyvaluedb url = ../keyvaluedb.git -[submodule "external/netlink"] - path = external/netlink - url = ../netlink.git [submodule "external/libmdns"] path = external/libmdns url = ../libmdns.git diff --git a/Cargo.lock b/Cargo.lock index 71914e88..3b4a7813 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3298,7 +3298,9 @@ dependencies = [ [[package]] name = "netlink-packet-core" -version = "0.4.1" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5cf0b54effda4b91615c40ff0fd12d0d4c9a6e0f5116874f03941792ff535a" dependencies = [ "anyhow", "byteorder", @@ -3308,7 +3310,9 @@ dependencies = [ [[package]] name = "netlink-packet-route" -version = "0.10.0" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea993e32c77d87f01236c38f572ecb6c311d592e56a06262a007fd2a6e31253c" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -3320,7 +3324,9 @@ dependencies = [ [[package]] name = "netlink-packet-utils" -version = "0.5.0" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", @@ -3330,19 +3336,24 @@ dependencies = [ [[package]] name = "netlink-proto" -version = "0.9.1" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26305d12193227ef7b8227e7d61ae4eaf174607f79bd8eeceff07aacaefde497" dependencies = [ "bytes 1.4.0", "futures", "log", "netlink-packet-core", "netlink-sys", + "thiserror", "tokio 1.28.2", ] [[package]] name = "netlink-sys" -version = "0.8.1" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "async-io", "bytes 1.4.0", @@ -4469,14 +4480,19 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.9.0" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7d42da676fdf7e470e2502717587dd1089d8b48d9d1b846dcc3c01072858cb" dependencies = [ "async-global-executor", "futures", "log", + "netlink-packet-core", "netlink-packet-route", + "netlink-packet-utils", "netlink-proto", - "nix 0.22.3", + "netlink-sys", + "nix 0.26.2", "thiserror", "tokio 1.28.2", ] @@ -6131,6 +6147,8 @@ dependencies = [ "maplit", "ndk", "ndk-glue", + "netlink-packet-route", + "netlink-sys", "nix 0.26.2", "once_cell", "owning_ref", diff --git a/Cargo.toml b/Cargo.toml index a70dbee8..f962d799 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,18 +14,18 @@ exclude = [ "./external/keyring-manager", "./external/netlink", "./external/curs cursive = { path = "./external/cursive/cursive" } cursive_core = { path = "./external/cursive/cursive-core" } -netlink-sys = { path = "./external/netlink/netlink-sys" } -netlink-packet-core = { path = "./external/netlink/netlink-packet-core" } -netlink-packet-utils = { path = "./external/netlink/netlink-packet-utils" } -#netlink-packet-generic = { path = "./external/netlink/netlink-packet-generic" } -netlink-packet-route = { path = "./external/netlink/netlink-packet-route" } -#netlink-packet-audit = { path = "./external/netlink/netlink-packet-audit" } -#netlink-packet-sock-diag = { path = "./external/netlink/netlink-packet-sock-diag" } -netlink-proto = { path = "./external/netlink/netlink-proto" } -#genetlink = { path = "./external/netlink/genetlink" } -rtnetlink = { path = "./external/netlink/rtnetlink" } -#audit = { path = "./external/netlink/audit" } -#ethtool = { path = "./external/netlink/ethtool" } +# netlink-sys = { path = "./external/netlink/netlink-sys" } +# netlink-packet-core = { path = "./external/netlink/netlink-packet-core" } +# netlink-packet-utils = { path = "./external/netlink/netlink-packet-utils" } +# #netlink-packet-generic = { path = "./external/netlink/netlink-packet-generic" } +# netlink-packet-route = { path = "./external/netlink/netlink-packet-route" } +# #netlink-packet-audit = { path = "./external/netlink/netlink-packet-audit" } +# #netlink-packet-sock-diag = { path = "./external/netlink/netlink-packet-sock-diag" } +# netlink-proto = { path = "./external/netlink/netlink-proto" } +# #genetlink = { path = "./external/netlink/genetlink" } +# rtnetlink = { path = "./external/netlink/rtnetlink" } +# #audit = { path = "./external/netlink/audit" } +# #ethtool = { path = "./external/netlink/ethtool" } [profile.release] opt-level = "s" diff --git a/external/netlink b/external/netlink deleted file mode 160000 index bf542d21..00000000 --- a/external/netlink +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bf542d210ec3c3f1c359b49036dc938ddfb3fdf9 diff --git a/veilid-core/Cargo.toml b/veilid-core/Cargo.toml index 28edfdb7..6eb99b12 100644 --- a/veilid-core/Cargo.toml +++ b/veilid-core/Cargo.toml @@ -15,8 +15,8 @@ crypto-test = ["enable-crypto-vld0", "enable-crypto-none"] crypto-test-none = ["enable-crypto-none"] enable-crypto-vld0 = [] enable-crypto-none = [] -rt-async-std = ["async-std", "async-std-resolver", "async_executors/async_std", "rtnetlink?/smol_socket", "veilid-tools/rt-async-std"] -rt-tokio = ["tokio", "tokio-util", "tokio-stream", "trust-dns-resolver/tokio-runtime", "async_executors/tokio_tp", "async_executors/tokio_io", "async_executors/tokio_timer", "rtnetlink?/tokio_socket", "veilid-tools/rt-tokio"] +rt-async-std = ["async-std", "async-std-resolver", "async_executors/async_std", "rtnetlink/smol_socket", "veilid-tools/rt-async-std"] +rt-tokio = ["tokio", "tokio-util", "tokio-stream", "trust-dns-resolver/tokio-runtime", "async_executors/tokio_tp", "async_executors/tokio_io", "async_executors/tokio_timer", "rtnetlink/tokio_socket", "veilid-tools/rt-tokio"] rt-wasm-bindgen = ["veilid-tools/rt-wasm-bindgen", "async_executors/bindgen"] veilid_core_android_tests = ["dep:paranoid-android"] @@ -54,15 +54,19 @@ enumset = { version= "^1", features = ["serde"] } backtrace = { version = "^0" } owo-colors = "^3" stop-token = { version = "^0", default-features = false } + ed25519-dalek = { version = "^1", default_features = false, features = ["alloc", "u64_backend"] } x25519-dalek = { version = "^1", default_features = false, features = ["u64_backend"] } curve25519-dalek = { version = "^3", default_features = false, features = ["alloc", "u64_backend"] } blake3 = { version = "^1" } -rtnetlink = { version = "^0", default-features = false, optional = true } + + async-std-resolver = { version = "^0", optional = true } trust-dns-resolver = { version = "^0", optional = true } enum-as-inner = "=0.5.1" # temporary fix for trust-dns-resolver v0.22.0 + keyvaluedb = { path = "../external/keyvaluedb/keyvaluedb" } + rkyv = { version = "^0", default_features = false, features = ["std", "alloc", "strict", "size_32", "validation"] } data-encoding = { version = "^2" } weak-table = "0.3.2" @@ -138,8 +142,10 @@ paranoid-android = { version = "^0", optional = true } ifstructs = "^0" # Dependencies for Linux or Android -[target.'cfg(any(target_os = "android",target_os = "linux"))'.dependencies] -rtnetlink = { version = "^0", default-features = false } +[target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies] +rtnetlink = { version = "^0", default-features = false} +netlink-sys = { version = "0.8" } +netlink-packet-route = { version = "0.15" } # Dependencies for Windows [target.'cfg(target_os = "windows")'.dependencies] diff --git a/veilid-core/src/intf/native/network_interfaces/netlink.rs b/veilid-core/src/intf/native/network_interfaces/netlink.rs index 94f53a1f..4b0f057c 100644 --- a/veilid-core/src/intf/native/network_interfaces/netlink.rs +++ b/veilid-core/src/intf/native/network_interfaces/netlink.rs @@ -7,15 +7,16 @@ use libc::{ close, if_indextoname, ioctl, socket, IFF_LOOPBACK, IFF_RUNNING, IF_NAMESIZE, SIOCGIFFLAGS, SOCK_DGRAM, }; -use rtnetlink::packet::{ +use netlink_packet_route::{ nlas::address::Nla, AddressMessage, AF_INET, AF_INET6, IFA_F_DADFAILED, IFA_F_DEPRECATED, IFA_F_OPTIMISTIC, IFA_F_PERMANENT, IFA_F_TEMPORARY, IFA_F_TENTATIVE, }; +use rtnetlink::{new_connection_with_socket, Handle, IpVersion}; cfg_if! { if #[cfg(feature="rt-async-std")] { - use rtnetlink::{new_connection_with_socket, sys::SmolSocket as RTNetLinkSocket, Handle, IpVersion}; + use netlink_sys::{SmolSocket as RTNetLinkSocket}; } else if #[cfg(feature="rt-tokio")] { - use rtnetlink::{new_connection_with_socket, sys::TokioSocket as RTNetLinkSocket, Handle, IpVersion}; + use netlink_sys::{TokioSocket as RTNetLinkSocket}; } } use std::convert::TryInto;