Skip to content

Commit fe678df

Browse files
mrcrglcathay4t
authored andcommitted
chore: rebased from main
1 parent 7be1634 commit fe678df

File tree

4 files changed

+64
-65
lines changed

4 files changed

+64
-65
lines changed

src/link/link_info/bond.rs

Lines changed: 48 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ const BOND_OPT_ARP_ALL_TARGETS_ALL: u32 = 1;
8282
const BOND_PRI_RESELECT_ALWAYS: u8 = 0;
8383
const BOND_PRI_RESELECT_BETTER: u8 = 1;
8484
const BOND_PRI_RESELECT_FAILURE: u8 = 2;
85+
const BOND_FOM_NONE: u8 = 0;
86+
const BOND_FOM_ACTIVE: u8 = 1;
87+
const BOND_FOM_FOLLOW: u8 = 2;
8588

8689
#[derive(Debug, Clone, Eq, PartialEq)]
8790
#[non_exhaustive]
@@ -426,6 +429,51 @@ impl std::fmt::Display for BondArpAllTargets {
426429
}
427430
}
428431

432+
#[derive(Debug, Clone, Copy, Eq, PartialEq, Default)]
433+
pub enum BondFailOverMac {
434+
#[default]
435+
None,
436+
Active,
437+
Follow,
438+
Other(u8),
439+
}
440+
441+
impl From<BondFailOverMac> for u8 {
442+
fn from(value: BondFailOverMac) -> Self {
443+
match value {
444+
BondFailOverMac::None => BOND_FOM_NONE,
445+
BondFailOverMac::Active => BOND_FOM_ACTIVE,
446+
BondFailOverMac::Follow => BOND_FOM_FOLLOW,
447+
BondFailOverMac::Other(d) => d,
448+
}
449+
}
450+
}
451+
452+
impl From<u8> for BondFailOverMac {
453+
fn from(value: u8) -> Self {
454+
match value {
455+
BOND_FOM_NONE => BondFailOverMac::None,
456+
BOND_FOM_ACTIVE => BondFailOverMac::Active,
457+
BOND_FOM_FOLLOW => BondFailOverMac::Follow,
458+
d => BondFailOverMac::Other(d),
459+
}
460+
}
461+
}
462+
463+
impl std::fmt::Display for BondFailOverMac {
464+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
465+
let kernel_name = match self {
466+
BondFailOverMac::None => "none",
467+
BondFailOverMac::Active => "active",
468+
BondFailOverMac::Follow => "follow",
469+
BondFailOverMac::Other(d) => {
470+
return write!(f, "unknown-variant ({d})")
471+
}
472+
};
473+
f.write_str(kernel_name)
474+
}
475+
}
476+
429477
// Some attributes (ARP_IP_TARGET, NS_IP6_TARGET) contain a nested
430478
// list of IP addresses, where each element uses the index as NLA kind
431479
// and the address as value. InfoBond exposes vectors of IP addresses,
@@ -576,8 +624,6 @@ impl Nla for InfoBond {
576624
Self::XmitHashPolicy(value) => buffer[0] = (*value).into(),
577625
Self::PrimaryReselect(value) => buffer[0] = (*value).into(),
578626
Self::UseCarrier(value)
579-
| Self::FailOverMac(value)
580-
| Self::XmitHashPolicy(value)
581627
| Self::NumPeerNotif(value)
582628
| Self::AllPortsActive(value)
583629
| Self::AdLacpActive(value)
@@ -818,52 +864,3 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Parseable<NlaBuffer<&'a T>> for InfoBond {
818864
})
819865
}
820866
}
821-
822-
const BOND_FOM_NONE: u8 = 0;
823-
const BOND_FOM_ACTIVE: u8 = 1;
824-
const BOND_FOM_FOLLOW: u8 = 2;
825-
826-
#[derive(Debug, Clone, Copy, Eq, PartialEq, Default)]
827-
pub enum BondFailOverMac {
828-
#[default]
829-
None,
830-
Active,
831-
Follow,
832-
Other(u8),
833-
}
834-
835-
impl From<BondFailOverMac> for u8 {
836-
fn from(value: BondFailOverMac) -> Self {
837-
match value {
838-
BondFailOverMac::None => BOND_FOM_NONE,
839-
BondFailOverMac::Active => BOND_FOM_ACTIVE,
840-
BondFailOverMac::Follow => BOND_FOM_FOLLOW,
841-
BondFailOverMac::Other(d) => d,
842-
}
843-
}
844-
}
845-
846-
impl From<u8> for BondFailOverMac {
847-
fn from(value: u8) -> Self {
848-
match value {
849-
BOND_FOM_NONE => BondFailOverMac::None,
850-
BOND_FOM_ACTIVE => BondFailOverMac::Active,
851-
BOND_FOM_FOLLOW => BondFailOverMac::Follow,
852-
d => BondFailOverMac::Other(d),
853-
}
854-
}
855-
}
856-
857-
impl std::fmt::Display for BondFailOverMac {
858-
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
859-
let kernel_name = match self {
860-
BondFailOverMac::None => "none",
861-
BondFailOverMac::Active => "active",
862-
BondFailOverMac::Follow => "follow",
863-
BondFailOverMac::Other(d) => {
864-
return write!(f, "unknown-variant ({d})")
865-
}
866-
};
867-
f.write_str(kernel_name)
868-
}
869-
}

src/link/link_info/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ mod xstats;
3030

3131
pub use self::bond::{
3232
BondAdInfo, BondArpAllTargets, BondArpValidate, BondFailOverMac, BondMode,
33-
BondXmitHashPolicy, InfoBond, BondPrimaryReselect
33+
BondPrimaryReselect, BondXmitHashPolicy, InfoBond,
3434
};
3535
pub use self::bond_port::{BondPortState, InfoBondPort, MiiStatus};
3636
pub use self::bridge::{

src/link/mod.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,17 @@ pub use self::header::{LinkHeader, LinkMessageBuffer};
4040
pub use self::link_flag::LinkFlags;
4141
pub use self::link_info::{
4242
BondAdInfo, BondArpAllTargets, BondArpValidate, BondFailOverMac, BondMode,
43-
BondPortState, BondXmitHashPolicy, BridgeId, BridgeIdBuffer,
44-
BridgePortMulticastRouter, BridgePortState, BridgeQuerierState, GeneveDf,
45-
HsrProtocol, InfoBond, InfoBondPort, InfoBridge, InfoBridgePort, InfoData,
46-
InfoGeneve, InfoGreTap, InfoGreTap6, InfoGreTun, InfoGreTun6, InfoGtp,
47-
InfoHsr, InfoIpVlan, InfoIpVtap, InfoIpoib, InfoKind, InfoMacSec,
48-
InfoMacVlan, InfoMacVtap, InfoPortData, InfoPortKind, InfoSitTun, InfoTun,
49-
InfoVeth, InfoVlan, InfoVrf, InfoVrfPort, InfoVti, InfoVxlan, InfoXfrm,
50-
IpVlanFlags, IpVlanMode, IpVtapFlags, IpVtapMode, LinkInfo, LinkXstats,
51-
MacSecCipherId, MacSecOffload, MacSecValidate, MacVlanMode, MacVtapMode,
52-
MiiStatus, VlanQosMapping,BondPrimaryReselect
43+
BondPortState, BondPrimaryReselect, BondXmitHashPolicy, BridgeId,
44+
BridgeIdBuffer, BridgePortMulticastRouter, BridgePortState,
45+
BridgeQuerierState, GeneveDf, HsrProtocol, InfoBond, InfoBondPort,
46+
InfoBridge, InfoBridgePort, InfoData, InfoGeneve, InfoGreTap, InfoGreTap6,
47+
InfoGreTun, InfoGreTun6, InfoGtp, InfoHsr, InfoIpVlan, InfoIpVtap,
48+
InfoIpoib, InfoKind, InfoMacSec, InfoMacVlan, InfoMacVtap, InfoPortData,
49+
InfoPortKind, InfoSitTun, InfoTun, InfoVeth, InfoVlan, InfoVrf,
50+
InfoVrfPort, InfoVti, InfoVxlan, InfoXfrm, IpVlanFlags, IpVlanMode,
51+
IpVtapFlags, IpVtapMode, LinkInfo, LinkXstats, MacSecCipherId,
52+
MacSecOffload, MacSecValidate, MacVlanMode, MacVtapMode, MiiStatus,
53+
VlanQosMapping,
5354
};
5455
pub use self::link_layer_type::LinkLayerType;
5556
pub use self::link_state::State;

src/link/tests/bond.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ use netlink_packet_utils::{Emitable, Parseable};
55
use crate::link::link_flag::LinkFlags;
66
use crate::link::{
77
BondArpAllTargets, BondArpValidate, BondFailOverMac, BondMode,
8-
BondPortState, BondXmitHashPolicy, InfoBond, InfoBondPort, InfoData,
9-
InfoKind, InfoPortData, InfoPortKind, LinkAttribute, LinkHeader, LinkInfo,
10-
LinkLayerType, LinkMessage, LinkMessageBuffer, Map, MiiStatus, State, BondPrimaryReselect
8+
BondPortState, BondPrimaryReselect, BondXmitHashPolicy, InfoBond,
9+
InfoBondPort, InfoData, InfoKind, InfoPortData, InfoPortKind,
10+
LinkAttribute, LinkHeader, LinkInfo, LinkLayerType, LinkMessage,
11+
LinkMessageBuffer, Map, MiiStatus, State,
1112
};
1213
use crate::{AddressFamily, RouteNetlinkMessage};
1314

0 commit comments

Comments
 (0)