diff options
author | Bailey Kuo <formosa@google.com> | 2024-01-03 14:00:53 -0800 |
---|---|---|
committer | Bailey Kuo <formosa@google.com> | 2024-01-03 14:00:53 -0800 |
commit | b65f5bd907d189a90fd1aa355ae8e5820c1bb3d9 (patch) | |
tree | 621814aef2d29d62222c538ab1d997df8a987336 | |
parent | f35689b1a7e790f151d46dcaa0f501553dee99c7 (diff) | |
download | netsim-b65f5bd907d189a90fd1aa355ae8e5820c1bb3d9.tar.gz |
Update wifi PDL
- Declare HwsimMsg as packet instead to be able to parse it into bytes
Bug: 308815804
Test: ninja
Change-Id: Id283685dc101b720f294237ee00fe0918634cd3e
-rw-r--r-- | pdl/mac80211_hwsim.pdl | 2 | ||||
-rw-r--r-- | rust/daemon/src/wifi/frame.rs | 4 | ||||
-rw-r--r-- | rust/daemon/src/wifi/hwsim_attr_set.rs | 10 | ||||
-rw-r--r-- | rust/daemon/src/wifi/medium.rs | 10 |
4 files changed, 13 insertions, 13 deletions
diff --git a/pdl/mac80211_hwsim.pdl b/pdl/mac80211_hwsim.pdl index dce9518..5ca3c70 100644 --- a/pdl/mac80211_hwsim.pdl +++ b/pdl/mac80211_hwsim.pdl @@ -242,7 +242,7 @@ struct HwsimMsgHdr { reserved: 16, } -struct HwsimMsg { +packet HwsimMsg { nl_hdr: NlMsgHdr, hwsim_hdr: HwsimMsgHdr, // user header diff --git a/rust/daemon/src/wifi/frame.rs b/rust/daemon/src/wifi/frame.rs index 1ec8904..e2e6bca 100644 --- a/rust/daemon/src/wifi/frame.rs +++ b/rust/daemon/src/wifi/frame.rs @@ -48,10 +48,10 @@ impl Frame { // found. pub fn parse(msg: &HwsimMsg) -> anyhow::Result<Frame> { // Only expected to be called with HwsimCmd::Frame - if (msg.hwsim_hdr.hwsim_cmd != HwsimCmd::Frame) { + if (msg.get_hwsim_hdr().hwsim_cmd != HwsimCmd::Frame) { panic!("Invalid hwsim_cmd"); } - let attrs = HwsimAttrSet::parse(&msg.attributes).context("HwsimAttrSet")?; + let attrs = HwsimAttrSet::parse(msg.get_attributes()).context("HwsimAttrSet")?; let frame = attrs.frame.clone().context("Frame")?; let ieee80211 = Ieee80211::parse(&frame).context("Ieee80211")?; // Required attributes are unwrapped and return an error if diff --git a/rust/daemon/src/wifi/hwsim_attr_set.rs b/rust/daemon/src/wifi/hwsim_attr_set.rs index 839f27a..2f97481 100644 --- a/rust/daemon/src/wifi/hwsim_attr_set.rs +++ b/rust/daemon/src/wifi/hwsim_attr_set.rs @@ -279,8 +279,8 @@ mod tests { fn test_attr_set_parse() { let packet: Vec<u8> = include!("test_packets/hwsim_cmd_frame.csv"); let hwsim_msg = HwsimMsg::parse(&packet).unwrap(); - assert_eq!(hwsim_msg.hwsim_hdr.hwsim_cmd, HwsimCmd::Frame); - let attrs = HwsimAttrSet::parse(&hwsim_msg.attributes).unwrap(); + assert_eq!(hwsim_msg.get_hwsim_hdr().hwsim_cmd, HwsimCmd::Frame); + let attrs = HwsimAttrSet::parse(hwsim_msg.get_attributes()).unwrap(); // Validate each attribute parsed assert_eq!(attrs.transmitter, MacAddress::try_from(11670786u64).ok()); @@ -302,8 +302,8 @@ mod tests { fn test_attr_set_attributes() { let packet: Vec<u8> = include!("test_packets/hwsim_cmd_frame.csv"); let hwsim_msg = HwsimMsg::parse(&packet).unwrap(); - assert_eq!(hwsim_msg.hwsim_hdr.hwsim_cmd, HwsimCmd::Frame); - let attrs = HwsimAttrSet::parse(&hwsim_msg.attributes).unwrap(); - assert_eq!(attrs.attributes, hwsim_msg.attributes); + assert_eq!(hwsim_msg.get_hwsim_hdr().hwsim_cmd, HwsimCmd::Frame); + let attrs = HwsimAttrSet::parse(hwsim_msg.get_attributes()).unwrap(); + assert_eq!(&attrs.attributes, hwsim_msg.get_attributes()); } } diff --git a/rust/daemon/src/wifi/medium.rs b/rust/daemon/src/wifi/medium.rs index ddaa563..300291e 100644 --- a/rust/daemon/src/wifi/medium.rs +++ b/rust/daemon/src/wifi/medium.rs @@ -45,7 +45,7 @@ pub enum HwsimCmdEnum { /// pub fn process(chip_id: ChipIdentifier, packet: &[u8]) -> anyhow::Result<()> { let hwsim_msg = HwsimMsg::parse(packet)?; - match (hwsim_msg.hwsim_hdr.hwsim_cmd) { + match (hwsim_msg.get_hwsim_hdr().hwsim_cmd) { HwsimCmd::Frame => { let frame = Frame::parse(&hwsim_msg)?; info!( @@ -54,7 +54,7 @@ pub fn process(chip_id: ChipIdentifier, packet: &[u8]) -> anyhow::Result<()> { ); } HwsimCmd::AddMacAddr => { - let attr_set = HwsimAttrSet::parse(&hwsim_msg.attributes)?; + let attr_set = HwsimAttrSet::parse(hwsim_msg.get_attributes())?; if let (Some(addr), Some(hwaddr)) = (attr_set.transmitter, attr_set.receiver) { info!("ADD_MAC_ADDR transmitter {:?} receiver {:?}", hwaddr, addr); } else { @@ -62,7 +62,7 @@ pub fn process(chip_id: ChipIdentifier, packet: &[u8]) -> anyhow::Result<()> { } } HwsimCmd::DelMacAddr => { - let attr_set = HwsimAttrSet::parse(&hwsim_msg.attributes)?; + let attr_set = HwsimAttrSet::parse(hwsim_msg.get_attributes())?; if let (Some(addr), Some(hwaddr)) = (attr_set.transmitter, attr_set.receiver) { info!("DEL_MAC_ADDR transmitter {:?} receiver {:?}", hwaddr, addr); } else { @@ -80,12 +80,12 @@ pub fn process(chip_id: ChipIdentifier, packet: &[u8]) -> anyhow::Result<()> { pub fn parse_hwsim_cmd(packet: &[u8]) -> anyhow::Result<HwsimCmdEnum> { let hwsim_msg = HwsimMsg::parse(packet)?; - match (hwsim_msg.hwsim_hdr.hwsim_cmd) { + match (hwsim_msg.get_hwsim_hdr().hwsim_cmd) { HwsimCmd::Frame => { let frame = Frame::parse(&hwsim_msg)?; Ok(HwsimCmdEnum::Frame(Box::new(frame))) } - _ => Err(anyhow!("Unknown HwsimMsg cmd={:?}", hwsim_msg.hwsim_hdr.hwsim_cmd)), + _ => Err(anyhow!("Unknown HwsimMsg cmd={:?}", hwsim_msg.get_hwsim_hdr().hwsim_cmd)), } } |