# Changelog
## [0.30.0] - 2026-04-15
### Breaking changes
 - API break: Change `In6AddrGenMode::StablePrivacy` display to
   `stable_privacy`. (900e42c)
 - API break: Change `NeighbourAttribute::LinkLocalAddress` to
   `LinkLayerAddress`. (2442c1d)

### New features
 - route: Add default for Seg6Header. (ffb7a4c)
 - link: Add DEVCONF_FORCE_FORWARDING to Inet6DevConf (kernel 6.17+). (7fa59a8)
 - link: Add support of `IFLA_PARENT_DEV_NAME` and etc. (a21e273)
 - link: Add support of `IFLA_DEVLINK_PORT`. (e223320)
 - link: Add support of `IFLA_NETNS_IMMUTABLE`. (609d4a1)
 - link: Add support of `IFLA_GSO_IPV4_MAX_SIZE` and `IFLA_GRO_IPV4_MAX_SIZE`.
   (4c39988)

### Bug fixes
 - link: Fix typo in IFLA_PROTO_DOWN_REASON_VALUE process. (372d94a)
 - link: Use std::cmp::Ordering instead manual compare. (1b149f4)

## [0.29.0] - 2026-02-19
### Breaking changes
 - link bond: Change `InfoBond::AdSelect` from u8 to enum. (1a16af8)
 - link bridge: Change `NeighVlanSupress` to `NeighVlanSuppress`. (420d181)

### New features
 - link: add vxcan support. (dcd3afb)
 - link: AF_SPEC(MCTP): Add physical binding type attribute. (cfba8ea)
 - tc: add TC filter for BPF/TC_BPF_*. (890416d)
 - link: Add MCTP definitions for IFLA_AF_SPEC. (301a0a1)
 - link: Add definitons for ARPHRD_MCTP. (e8250a6)
 - link: Add initial support of `IFLA_WIRELESS`. (80b2e54)

### Bug fixes
 - LinkHeader: zero padding explicitly. (f0ae7c5)
 - tc: parse error message to correct kind. (6241e51)
 - link: downgrade `warn` to `debug`. (caec633)
 - Remove unused rich_nlas feat. (33580ca)

## [0.28.0] - 2026-01-01
### Breaking changes
 - link: Changed `InfoIpoib::Mode` from u16 to enum. (b1b8ef4)
 - macvlan, macvtap: Changed `MacAddrMode` from u32 to enum. (3badfa0)
 - macvlan, macvtap: Change `Flags` from u16 to bitflags. (12da3db)

### New features
 - N/A

### Bug fixes
 - N/A

## [0.27.0] - 2025-12-24
### Breaking changes
 - link: Remove support of IFLA_WIRELESS. (3283c84)
 - link bridge: Changed `InfoBridge::NfCallArpTables` from u8 to bool.
   (55bc622)
 - link bridge: Changed `InfoBridge::NfCallIp6Tables` from u8 to bool.
   (17f3650)
 - link bridge: Changed `InfoBridge::NfCallIpTables` from u8 to bool. (3b37a0e)
 - link bridge: Changed `InfoBridge::MulticastStatsEnabled` from u8 to bool.
   (fc1e02d)
 - link bridge: Changed `InfoBridge::MulticastQuerier` from u8 to bool.
   (6758931)
 - link bridge: Changed `InfoBridge::MulticastQueryUseIfaddr` from u8 to bool.
   (4418dd9)
 - link bridge: Unify `InfoBridge::MulticastRouter` and
   `InfoBridgePort::MulticastRouter`. (86dfb5e)
 - link bridge: Changed `InfoBridge::MulticastSnooping` from u8 to bool.
   (635019b)
 - link bridge: Changed `InfoBridge::VlanStatsPerHost(u8)` to
   `VlanStatsPerPort(bool)`. (883daf6)
 - link bridge: Changed `InfoBridge::VlanStatsEnabled` from u8 to bool.
   (58e65af)
 - link bridge: Changed `InfoBridge::VlanProtocol` from u16 to enum. (759073b)
 - link: Changed `InfoBridge::MultiBoolOpt` from u64 to struct. (2c53f22)
 - link: Changed `InfoBridge::StpState` from u32 to enum. (ed4c981)
 - bond: Changed `InfoBond::UseCarrier` from u8 to bool. (fc1ba75)
 - bond: Changed `InfoBond::AdLacpActive` from u8 to bool. (0bedb4c)
 - bond: Changed `InfoBond::TlbDynamicLb` from u8 to bool. (ab4a6ac)
 - bond: Changed `InfoBond::AdLacpRate` from u8 to enum. (5d943ad)
 - bond: Changed `InfoBond::AllPortsActive` from u8 to `enum`. (d73b2a1)

### New features
 - link bridge: Support `IFLA_BR_FDB_N_LEARNED` and `IFLA_BR_FDB_MAX_LEARNED`.
   (7cdb880)
 - link bridge: Support `BR_BOOLOPT_FDB_LOCAL_VLAN_0`. (61ff86b)

### Bug fixes
 - N/A
## [0.26.0] - 2025-12-09
### Breaking changes
 - link: Change `InfoVlan::Flags` from u32 to VlanFlags. (4e8e1c5)
 - link: Add support of iptunnel.(a83f6ae, 1775849, 9771024, 0048dd7, cee37d1)
 - ip: Replace `as u8` casts with explicit From conversions for IpProtocol. (582454c)

### New features
 - address: Handle `IFA_RT_PRIORITY` `IFA_TARGET_NETNSID` and `IFA_PROTO`. (a804545)
 - link: Add netkit support. (bcd7a1f, 8523980)
 - hsr: Add support for interlink attribute. (e088bff)
 - link: Add support of iptunnel.(a83f6ae, 1775849, 9771024, 0048dd7, cee37d1,
   84989e2)
 - neighbour: impl From<IpAddr> for NeighbourAddress. (a25d26f)
 - address_family: impl From<IpAddr> for AddressFamily. (2812ba1)
 - neighbour: Support `NDA_FLAGS_EXT`. (0bd7abd)
 - prefix: export PrefixAttribute and CacheInfo. (37674f5)

### Bug fixes
 - Fix MIT license file. (7a51870)
 - Remove execution bit of `src/tc/actions/tunnel_key.rs`. (1d4709a)

## [0.25.1] - 2025-08-29
### Breaking changes
 - Set minimum supported rust version to 1.77. (6bd5418)

### New features
 - N/A

### Bug fixes
 - Fix compiling error on rust 1.77. (6bd5418)

## [0.25.0] - 2025-08-27
### Breaking changes
 - Drop the dependency on `netlink-packet-utils`. (e09acbd)
 - Add `non_exhaustive` to these bond options: (eacf67f)
    * `BondArpValidate`
    * `BondPrimaryReselect`
    * `BondXmitHashPolicy`
    * `BondArpAllTargets`
    * `BondFailOverMac`
 - Changed `AfSpecInet6::AddrGenMode` to enum. (7daf895)
 - Changed `LinkAttribute::Mode` to enum. (be2796c)

### New features
 - Support `LWTUNNEL_ENCAP_IP6`. (0e49453)

### Bug fixes
 - Expose In6AddrGenMode. (faf9d39)

## [0.24.0] - 2025-05-21
### Breaking changes
 - Changed `InfoBond::PrimaryReselect` from u8 to enum. (7be1634)

### New features
 - ICMP6: Add support of ICMP6_MIB_RATELIMITHOST. (3497a69)
 - Support Seg6 encapsulation type. (1a33cd3)
 - impl `From<IpAddr>` for `RouteVia`. (7ef6bf6)

### Bug fixes
 - Fix parsing error on empty IFLA_AF_SPEC. (5e54549)
 - Fix panic of integer underflow in `RouteNextHopBuffer`. (a285aba)

## [0.23.0] - 2025-04-30
### Breaking changes
 - `InfoBond::ArpAllTargets` changed to enum. (507ea73)
 - `InfoBond::XmitHashPolicy` changed to enum. (b2572da)
 - `InfoBond::FailOverMac` changed to enum. (3270863)

### New features
 - tc: Add support of tunnel key. (f5535f3)

### Bug fixes
 - Fix compile on Andriod. (d44d500)
 - Fix panic of integer underflow in `RouteNextHopBuffer`. (a285aba)

## [0.22.0] - 2025-03-17
### Breaking changes
 - Changed `tc::TcActionMirrorOption::Tm` from `Vec<u8>` to `Tcf`. (f3953b8)
 - Changed `tc::TcActionNatOption::Tm` from `Vec<u8>` to `Tcf`. (f3953b8)
 - Changed `Inet6Stats::out_pkts` to `Inet6Stats::out_requests`. (201d99b)

### New features
 - tc: Add support of tunnel key. (f5535f3)
 - tc: Add flower support. (55e4835)
 - ip6 state: Add support of reasm_overlaps and out_pkts. (201d99b)

### Bug fixes
 - Fix error on decoding empty IFLA_VFINFO_LIST. (8ac7c2a)

## [0.21.0] - 2024-09-12
### Breaking changes
 - `InfoIpVlan::Flags` changed from u16 to `IpVlanFlags`. (321e4d5)
 - `AfSpecBridge::Flags` changed from u16 to `BridgeFlag`. (40d090b)
 - `InfoBond::ArpValidate` changed from u32 to `BondArpValidate`.(5246712)
 - `InfoVxlan::Group` changed from `Vec<u8>` to `Ipv4Addr`. (538e13b)
 - `InfoVxlan::Group6` changed from `Vec<u8>` to `Ipv6Addr`. (538e13b)
 - `InfoVxlan::Local` changed from `Vec<u8>` to `Ipv4Addr`. (538e13b)
 - `InfoVxlan::Local6` changed from `Vec<u8>` to `Ipv6Addr`. (538e13b)

### New features
 - bridge port: Introduce BridgeFlag, BridgeMode and BridgeVlanTunnelInfo.
   (40d090b)
 - Add support for geneve links. (7391b19)

### Bug fixes
 - Avoid panic in TcU32Selector parsing. (c49e3ac)
 - Avoid panic in RouteNextHopBuffer length checks. (666edbc)
 - Check NLA buffers on creation. (fceb9c2)
 - Check Map buffers on creation. (d53bbad)

## [0.20.1] - 2024-06-29
### Breaking changes
 - N/A

### New features
 - Support for tc-actions. (65f699a, 0227234)
 - Support IFLA_VRF_PORT_TABLE attribute. (abfadc1)

### Bug fixes
 - N/A

## [0.20.0] - 2024-01-31
### Breaking changes
 - Use bitflags. (3c08f7f, 5072f3a, 9271b33, 8564ed9, e26b489, b337e00,
   386470f, 99bd9d2, 590411d, 6f63c6b)
 - bond: Convert `InfoBond::Mode` into an enum. (3e16f9c)
 - ipvlan: Change mode type from u16 to enum. (396d4b0)
 - link: Renamed `LinkAttribute::NetnsId` to `LinkNetNsId`. (528905c)
 - mac vlan/vtap: Changed MAC VLAN/VTAP mode from u32 to enum. (b23b165)
 - bridge: Change InfoBridge::VlanFiltering from u8 to bool. (de0f47a)

### New features
 - Added `InfoData::IpVtap`. (a8d125c)
 - impl `From<IpAddr>` for `RouteAddress`. (984b358)

### Bug fixes
 - link: Check buffer length when parsing NLAs. (a543bb7)
 - link: Expand the buffer before parsing stats data from old kernel. (4d5f819)

## [0.19.0] - 2024-01-31
### Breaking changes

 - `InfoBridge::RootId` and `InfoBridge::BridgeId` changed. (fb497b3)

### New features
 - Support bridge bond port information. (faffa52)
 - Support RTM_NEWPREFIX. (2a43e1c)
 - Add `Default` derive to `TcFqCodelQdStats` and etc. (e21122e)

### Bug fixes
 - N/A

## [0.18.1] - 2023-12-05
### Breaking changes

 - N/A

### New features
 - N/A

### Bug fixes
 - Fix crash on RuleFlag of `attempt to subtract with overflow`. (ece8735)

## [0.18.0] - 2023-12-05
### Breaking changes

 - MASSIVE changes to API in order to 1.0 preparation. Please check
   document or code for detail. Sorry for the inconvenience.

### New features
 - Support HSR interface. (37f9c5c)

### Bug fixes
 - vxlan: Do not fail on unknown option. (2457bdf)
 - bond: Do not fail on unknown option. (acac109)
 - vlan: Do not fail on unknown option. (1617948)

## [0.17.1] - 2023-08-30
### Breaking changes
 - N/A

### New features
 - Add support of MACsec interface. (050fd64)

### Bug fixes
 - vxlan: fix port-range attribute marshalling. (55de269)
 - vxlan: fix port-range attribute endianness. (ce406b2)
 - vxlan: fix port attribute endianness. (927bdd7)

## [0.17.0] - 2023-07-10
### Breaking changes
 - `InfoVlan::EgressQos(Vec<u8>)` changed to
   `InfoVlan::EgressQos(Vec<VlanQosMapping>)`. (2d33edb)
 - `InfoVlan::IngressQos(Vec<u8>)` changed to
   `InfoVlan::IngressQos(Vec<VlanQosMapping>)`. (2d33edb)

### New features
 - Added rich representation for VLAN QOS mapping. (2d33edb)
 - Added MacVlan IFLA_MACVLAN_BC_ options. (640be35)

### Bug fixes
 - N/A

## [0.16.1] - 2023-07-10
### Breaking changes
 - N/A

### New features
 - N/A

### Bug fixes
 - Use latest rust-netlink crates. (2eda618)

## [0.16.0] - 2023-06-25
### Breaking changes
 - Replaced all `slave` to `port`. (bfa1ec3)
    * `InfoBond::ActiveSlave` -> `InfoBond::ActivePort`
    * `InfoBond::AllSlavesActive` -> `InfoBond::AllPortsActive`
    * `InfoBond::PacketsPerSlave` -> `InfoBond::PacketsPerPort`
    * `SlaveState` -> `BondPortState`
    * `link_infos::Info::SlaveKind` -> `link_info::Info::PortKind`
    * `link_infos::Info::SlaveData` -> `link_info::Info::PortData`
    * `link_infos::InfoSlaveData` -> `link_info::InfoPortData`

### New features
 - Add support of bond port settings. (83c9689)
 - Add support of TC matchall filter. (d71b961)
 - Add egress builder for TcNat type. (62d2411)
 - Add the nat action to tc. (c80c678)
 - Add XDP nlas structure support. (75ce74c)

### Bug fixes
 - Set `NLM_F_NESTED` for `TCA_ACT_OPTIONS` type. (a93b651)

## [0.15.0] - 2023-01-28
### Breaking changes
 - Removed these reexports. (8784586)
    * `netlink_packet_route::ErrorMessage`
    * `netlink_packet_route::NetlinkBuffer`
    * `netlink_packet_route::NetlinkHeader`
    * `netlink_packet_route::NetlinkMessage`
    * `netlink_packet_route::NetlinkPayload`
    * `netlink_packet_route::traits`
    * `netlink_packet_route::DecodeError`
 - Remove internal fuzz sub-crate. (f2ffa9d)

### New features
 - N/A

### Bug fixes
 - N/A

## [0.14.1] - 2023-01-28
### Breaking changes
 - N/A

### New features
 - N/A

### Bug fixes
 - Bridge VLAN: Fixed incorrect constants. (6994712)

## [0.14.0] - 2023-01-28
### Breaking changes
 - All public struct and enum are marked as `non_exhaustive`. Please check
   https://doc.rust-lang.org/reference/attributes/type_system.html for more
   detail. (0b98180)

### New features
 - LinkAddRequest: Allow adding XFRM tunnel with if_id mark. (5507d97)
 - Bridge: Add support of `IFLA_BR_MCAST_QUERIER_STATE`. (3d91fdf)
 - LinkAddRequest: Allow adding macvtap on a link. (dabd5dc)

### Bug fixes
 - Fix panics when using iif or oif with ip rule. (dab602e)
