@@ -6,7 +6,7 @@ use anyhow::Context;
6
6
use byteorder:: { ByteOrder , NativeEndian } ;
7
7
use netlink_packet_utils:: {
8
8
nla:: { DefaultNla , Nla , NlaBuffer , NlasIterator } ,
9
- parsers:: { parse_u32, parse_u8 } ,
9
+ parsers:: parse_u32,
10
10
traits:: { Emitable , Parseable } ,
11
11
DecodeError ,
12
12
} ;
@@ -20,7 +20,7 @@ use super::{
20
20
inet6_devconf:: LINK_INET6_DEV_CONF_LEN , inet6_icmp:: ICMP6_STATS_LEN ,
21
21
inet6_stats:: INET6_STATS_LEN ,
22
22
} ;
23
- use crate :: ip:: parse_ipv6_addr;
23
+ use crate :: { ip:: parse_ipv6_addr, link :: af_spec :: In6AddrGenMode } ;
24
24
25
25
const IFLA_INET6_FLAGS : u16 = 1 ;
26
26
const IFLA_INET6_CONF : u16 = 2 ;
@@ -43,7 +43,7 @@ pub enum AfSpecInet6 {
43
43
Stats ( Inet6Stats ) ,
44
44
Icmp6Stats ( Icmp6Stats ) ,
45
45
Token ( Ipv6Addr ) ,
46
- AddrGenMode ( u8 ) ,
46
+ AddrGenMode ( In6AddrGenMode ) ,
47
47
RaMtu ( u32 ) ,
48
48
Other ( DefaultNla ) ,
49
49
}
@@ -89,7 +89,7 @@ impl Nla for AfSpecInet6 {
89
89
Stats ( ref v) => v. emit ( buffer) ,
90
90
Icmp6Stats ( ref v) => v. emit ( buffer) ,
91
91
Token ( v) => buffer. copy_from_slice ( & v. octets ( ) ) ,
92
- AddrGenMode ( value ) => buffer[ 0 ] = value ,
92
+ AddrGenMode ( ref v ) => buffer[ 0 ] = v . into ( ) ,
93
93
Other ( ref nla) => nla. emit_value ( buffer) ,
94
94
}
95
95
}
@@ -172,10 +172,9 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Parseable<NlaBuffer<&'a T>> for AfSpecInet6 {
172
172
parse_ipv6_addr ( payload)
173
173
. context ( "invalid IFLA_INET6_TOKEN value" ) ?,
174
174
) ,
175
- IFLA_INET6_ADDR_GEN_MODE => AddrGenMode (
176
- parse_u8 ( payload)
177
- . context ( "invalid IFLA_INET6_ADDR_GEN_MODE value" ) ?,
178
- ) ,
175
+ IFLA_INET6_ADDR_GEN_MODE => {
176
+ AddrGenMode ( In6AddrGenMode :: from ( payload[ 0 ] ) )
177
+ }
179
178
IFLA_INET6_RA_MTU => RaMtu (
180
179
parse_u32 ( payload)
181
180
. context ( "invalid IFLA_INET6_RA_MTU value" ) ?,
0 commit comments