aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBailey Kuo <formosa@google.com>2024-01-03 14:00:53 -0800
committerBailey Kuo <formosa@google.com>2024-01-03 14:00:53 -0800
commitb65f5bd907d189a90fd1aa355ae8e5820c1bb3d9 (patch)
tree621814aef2d29d62222c538ab1d997df8a987336
parentf35689b1a7e790f151d46dcaa0f501553dee99c7 (diff)
downloadnetsim-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.pdl2
-rw-r--r--rust/daemon/src/wifi/frame.rs4
-rw-r--r--rust/daemon/src/wifi/hwsim_attr_set.rs10
-rw-r--r--rust/daemon/src/wifi/medium.rs10
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)),
}
}