diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-09-15 13:26:04 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-15 13:26:04 +0200 |
| commit | 443e275f1feb9bc145a1edc9a2b06192e3fcf93b (patch) | |
| tree | 278250975528bf7864cc905a7c27f62b5d426c06 /src | |
| parent | a19bcb69d1eeeb2c7192bffce60dbefe1e0df28b (diff) | |
| parent | 96214f9db658be6d84082c8ddac21dcf4b09c3ff (diff) | |
Merge pull request #17 from danbev/channel-headers
Add constants for channel types
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 14 |
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; | |||
| 132 | const IOCTL_CMD_GET_VAR: u32 = 262; | 132 | const IOCTL_CMD_GET_VAR: u32 = 262; |
| 133 | const IOCTL_CMD_SET_PASSPHRASE: u32 = 268; | 133 | const IOCTL_CMD_SET_PASSPHRASE: u32 = 268; |
| 134 | 134 | ||
| 135 | const CHANNEL_TYPE_CONTROL: u8 = 0; | ||
| 136 | const CHANNEL_TYPE_EVENT: u8 = 1; | ||
| 137 | const CHANNEL_TYPE_DATA: u8 = 2; | ||
| 138 | |||
| 135 | #[derive(Clone, Copy, PartialEq, Eq)] | 139 | #[derive(Clone, Copy, PartialEq, Eq)] |
| 136 | enum Core { | 140 | enum 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, |
