# Changelog
## [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)
