diff --git a/Cargo.lock b/Cargo.lock index a695848ac..26cd283f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -509,9 +509,9 @@ checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" [[package]] name = "defmt" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2d011b2fee29fb7d659b83c43fce9a2cb4df453e16d441a51448e448f3f98" +checksum = "a99dd22262668b887121d4672af5a64b238f026099f1a2a1b322066c9ecfe9e0" dependencies = [ "bitflags 1.3.2", "defmt-macros", @@ -1425,7 +1425,7 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smoltcp" version = "0.11.0" -source = "git+https://github.com/asterinas/smoltcp?rev=37716bf#37716bff5ed5b16aba1b8a37e788ee5a6bf32cab" +source = "git+https://github.com/lrh2000/smoltcp?tag=r_2024-11-08_3e68ef4#85dfcb0518f764aff1bd3bf62d14396d3c621c03" dependencies = [ "bitflags 1.3.2", "byteorder", diff --git a/kernel/libs/aster-bigtcp/Cargo.toml b/kernel/libs/aster-bigtcp/Cargo.toml index 2f40952bc..0a102ffab 100644 --- a/kernel/libs/aster-bigtcp/Cargo.toml +++ b/kernel/libs/aster-bigtcp/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" [dependencies] keyable-arc = { path = "../keyable-arc" } ostd = { path = "../../../ostd" } -smoltcp = { git = "https://github.com/asterinas/smoltcp", rev = "37716bf", default-features = false, features = [ +smoltcp = { git = "https://github.com/asterinas/smoltcp", tag = "r_2024-11-08_f07e5b5", default-features = false, features = [ "alloc", "log", "medium-ethernet", diff --git a/kernel/libs/aster-bigtcp/src/iface/phy/ether.rs b/kernel/libs/aster-bigtcp/src/iface/phy/ether.rs index 547ec50ee..79a4a9882 100644 --- a/kernel/libs/aster-bigtcp/src/iface/phy/ether.rs +++ b/kernel/libs/aster-bigtcp/src/iface/phy/ether.rs @@ -8,7 +8,7 @@ use smoltcp::{ phy::{DeviceCapabilities, TxToken}, wire::{ self, ArpOperation, ArpPacket, ArpRepr, EthernetAddress, EthernetFrame, EthernetProtocol, - EthernetRepr, IpAddress, Ipv4Address, Ipv4Cidr, Ipv4Packet, + EthernetRepr, IpAddress, Ipv4Address, Ipv4AddressExt, Ipv4Cidr, Ipv4Packet, }, }; @@ -157,7 +157,7 @@ impl EtherIface { .. } => { // Ignore the ARP packet if the source addresses are not unicast. - if !source_hardware_addr.is_unicast() || !source_protocol_addr.is_unicast() { + if !source_hardware_addr.is_unicast() || !source_protocol_addr.x_is_unicast() { return None; } diff --git a/kernel/src/net/socket/ip/addr.rs b/kernel/src/net/socket/ip/addr.rs index 169a6712d..7e1044059 100644 --- a/kernel/src/net/socket/ip/addr.rs +++ b/kernel/src/net/socket/ip/addr.rs @@ -9,7 +9,7 @@ impl TryFrom for IpEndpoint { fn try_from(value: SocketAddr) -> Result { match value { - SocketAddr::IPv4(addr, port) => Ok(IpEndpoint::new(addr.into_address(), port)), + SocketAddr::IPv4(addr, port) => Ok(IpEndpoint::new(addr.into(), port)), _ => return_errno_with_message!( Errno::EAFNOSUPPORT, "the address is in an unsupported address family" diff --git a/kernel/src/util/net/addr/ip.rs b/kernel/src/util/net/addr/ip.rs index 873cef184..c2f9bb908 100644 --- a/kernel/src/util/net/addr/ip.rs +++ b/kernel/src/util/net/addr/ip.rs @@ -51,13 +51,15 @@ struct CInetAddr { impl From for CInetAddr { fn from(value: Ipv4Address) -> Self { - Self { s_addr: value.0 } + Self { + s_addr: value.octets(), + } } } impl From for Ipv4Address { fn from(value: CInetAddr) -> Self { - Self(value.s_addr) + Self::from(value.s_addr) } }