aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-09-15 13:26:04 +0200
committerGitHub <[email protected]>2022-09-15 13:26:04 +0200
commit443e275f1feb9bc145a1edc9a2b06192e3fcf93b (patch)
tree278250975528bf7864cc905a7c27f62b5d426c06 /src
parenta19bcb69d1eeeb2c7192bffce60dbefe1e0df28b (diff)
parent96214f9db658be6d84082c8ddac21dcf4b09c3ff (diff)
Merge pull request #17 from danbev/channel-headers
Add constants for channel types
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib.rs b/src/lib.rs
index e145b821b..def738b8d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -132,6 +132,10 @@ const IOCTL_CMD_SET_VAR: u32 = 263;
132const IOCTL_CMD_GET_VAR: u32 = 262; 132const IOCTL_CMD_GET_VAR: u32 = 262;
133const IOCTL_CMD_SET_PASSPHRASE: u32 = 268; 133const IOCTL_CMD_SET_PASSPHRASE: u32 = 268;
134 134
135const CHANNEL_TYPE_CONTROL: u8 = 0;
136const CHANNEL_TYPE_EVENT: u8 = 1;
137const CHANNEL_TYPE_DATA: u8 = 2;
138
135#[derive(Clone, Copy, PartialEq, Eq)] 139#[derive(Clone, Copy, PartialEq, Eq)]
136enum Core { 140enum Core {
137 WLAN = 0, 141 WLAN = 0,
@@ -755,7 +759,7 @@ where
755 len: total_len as u16, // TODO does this len need to be rounded up to u32? 759 len: total_len as u16, // TODO does this len need to be rounded up to u32?
756 len_inv: !total_len as u16, 760 len_inv: !total_len as u16,
757 sequence: seq, 761 sequence: seq,
758 channel_and_flags: 2, // data channel 762 channel_and_flags: CHANNEL_TYPE_DATA,
759 next_length: 0, 763 next_length: 0,
760 header_length: SdpcmHeader::SIZE as _, 764 header_length: SdpcmHeader::SIZE as _,
761 wireless_flow_control: 0, 765 wireless_flow_control: 0,
@@ -819,7 +823,7 @@ where
819 let payload = &packet[sdpcm_header.header_length as _..]; 823 let payload = &packet[sdpcm_header.header_length as _..];
820 824
821 match channel { 825 match channel {
822 0 => { 826 CHANNEL_TYPE_CONTROL => {
823 if payload.len() < CdcHeader::SIZE { 827 if payload.len() < CdcHeader::SIZE {
824 warn!("payload too short, len={}", payload.len()); 828 warn!("payload too short, len={}", payload.len());
825 return; 829 return;
@@ -840,7 +844,7 @@ where
840 } 844 }
841 } 845 }
842 } 846 }
843 1 => { 847 CHANNEL_TYPE_EVENT => {
844 let bcd_header = BcdHeader::from_bytes(&payload[..BcdHeader::SIZE].try_into().unwrap()); 848 let bcd_header = BcdHeader::from_bytes(&payload[..BcdHeader::SIZE].try_into().unwrap());
845 trace!(" {:?}", bcd_header); 849 trace!(" {:?}", bcd_header);
846 850
@@ -897,7 +901,7 @@ where
897 evt_data 901 evt_data
898 ); 902 );
899 } 903 }
900 2 => { 904 CHANNEL_TYPE_DATA => {
901 let bcd_header = BcdHeader::from_bytes(&payload[..BcdHeader::SIZE].try_into().unwrap()); 905 let bcd_header = BcdHeader::from_bytes(&payload[..BcdHeader::SIZE].try_into().unwrap());
902 trace!(" {:?}", bcd_header); 906 trace!(" {:?}", bcd_header);
903 907
@@ -948,7 +952,7 @@ where
948 len: total_len as u16, // TODO does this len need to be rounded up to u32? 952 len: total_len as u16, // TODO does this len need to be rounded up to u32?
949 len_inv: !total_len as u16, 953 len_inv: !total_len as u16,
950 sequence: sdpcm_seq, 954 sequence: sdpcm_seq,
951 channel_and_flags: 0, // control channel 955 channel_and_flags: CHANNEL_TYPE_CONTROL,
952 next_length: 0, 956 next_length: 0,
953 header_length: SdpcmHeader::SIZE as _, 957 header_length: SdpcmHeader::SIZE as _,
954 wireless_flow_control: 0, 958 wireless_flow_control: 0,