|
1 | 1 | // SPDX-License-Identifier: MIT |
2 | 2 |
|
3 | 3 | use crate::constants::*; |
4 | | -use anyhow::Context; |
5 | | -use byteorder::{ByteOrder, NativeEndian}; |
6 | | -use netlink_packet_utils::{ |
7 | | - nla::{Nla, NlaBuffer, NlasIterator}, |
8 | | - parsers::*, |
9 | | - traits::*, |
10 | | - DecodeError, |
11 | | -}; |
12 | | -use std::{ |
13 | | - convert::TryFrom, |
14 | | - mem::{size_of, size_of_val}, |
| 4 | +use netlink_packet_core::{ |
| 5 | + emit_i64, emit_u32, emit_u64, parse_i64, parse_u32, parse_u64, DecodeError, |
| 6 | + Emitable, ErrorContext, Nla, NlaBuffer, NlasIterator, Parseable, |
15 | 7 | }; |
| 8 | +use std::{convert::TryFrom, mem::size_of_val}; |
16 | 9 |
|
17 | 10 | // PolicyAttr |
18 | 11 |
|
@@ -150,17 +143,17 @@ impl Nla for NlPolicyTypeAttrs { |
150 | 143 | fn emit_value(&self, buffer: &mut [u8]) { |
151 | 144 | use NlPolicyTypeAttrs::*; |
152 | 145 | match self { |
153 | | - Type(v) => NativeEndian::write_u32(buffer, u32::from(*v)), |
154 | | - MinValueSigned(v) => NativeEndian::write_i64(buffer, *v), |
155 | | - MaxValueSigned(v) => NativeEndian::write_i64(buffer, *v), |
156 | | - MaxValueUnsigned(v) => NativeEndian::write_u64(buffer, *v), |
157 | | - MinValueUnsigned(v) => NativeEndian::write_u64(buffer, *v), |
158 | | - MinLength(v) => NativeEndian::write_u32(buffer, *v), |
159 | | - MaxLength(v) => NativeEndian::write_u32(buffer, *v), |
160 | | - PolicyIdx(v) => NativeEndian::write_u32(buffer, *v), |
161 | | - PolicyMaxType(v) => NativeEndian::write_u32(buffer, *v), |
162 | | - Bitfield32Mask(v) => NativeEndian::write_u32(buffer, *v), |
163 | | - Mask(v) => NativeEndian::write_u64(buffer, *v), |
| 146 | + Type(v) => emit_u32(buffer, u32::from(*v)).unwrap(), |
| 147 | + MinValueSigned(v) => emit_i64(buffer, *v).unwrap(), |
| 148 | + MaxValueSigned(v) => emit_i64(buffer, *v).unwrap(), |
| 149 | + MaxValueUnsigned(v) => emit_u64(buffer, *v).unwrap(), |
| 150 | + MinValueUnsigned(v) => emit_u64(buffer, *v).unwrap(), |
| 151 | + MinLength(v) => emit_u32(buffer, *v).unwrap(), |
| 152 | + MaxLength(v) => emit_u32(buffer, *v).unwrap(), |
| 153 | + PolicyIdx(v) => emit_u32(buffer, *v).unwrap(), |
| 154 | + PolicyMaxType(v) => emit_u32(buffer, *v).unwrap(), |
| 155 | + Bitfield32Mask(v) => emit_u32(buffer, *v).unwrap(), |
| 156 | + Mask(v) => emit_u64(buffer, *v).unwrap(), |
164 | 157 | } |
165 | 158 | } |
166 | 159 | } |
@@ -296,11 +289,3 @@ impl TryFrom<u32> for NlaType { |
296 | 289 | }) |
297 | 290 | } |
298 | 291 | } |
299 | | - |
300 | | -// FIXME: Add this into netlink_packet_utils::parser |
301 | | -fn parse_i64(payload: &[u8]) -> Result<i64, DecodeError> { |
302 | | - if payload.len() != size_of::<i64>() { |
303 | | - return Err(format!("invalid i64: {payload:?}").into()); |
304 | | - } |
305 | | - Ok(NativeEndian::read_i64(payload)) |
306 | | -} |
0 commit comments