On 12.03.2026 09:44, Hannes Laimer wrote: > On 2026-03-10 13:08, Gabriel Goller wrote: > > Add a new serializer which uses only the builtin (include_str!) templates > > from > > the `proxmox-frr-templates` package in `/usr/share/proxmox-frr/templates` to > > generate the frr config file. Also update the `build_fabric` function and > > the > > tests accordingly. > > > > Use the `phf` crate to store them in a const map. > > > > Signed-off-by: Gabriel Goller <[email protected]> > > --- > > [..] > > > /// A match statement inside a route-map. > > /// > > /// A route-map has one or more match statements which decide on which > > routes the route-map will > > /// execute its actions. If we match on an IP, there are two different > > syntaxes: `match ip ...` or > > /// `match ipv6 ...`. > > -/// > > -/// Serializes to: > > -/// > > -/// ```text > > -/// match ip address <access-list-name> > > -/// ! or > > -/// match ip next-hop <ip-address> > > -/// ! or > > -/// match ipv6 address <access-list-name> > > -/// ! or > > -/// match ipv6 next-hop <ip-address> > > -/// ``` > > -#[derive(Clone, Debug, PartialEq, Eq)] > > +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] > > +#[serde(tag = "protocol_type")] > ^ > > pub enum RouteMapMatch { > > + #[serde(rename = "ip")] > > V4(RouteMapMatchInner), > > + #[serde(rename = "ipv6")] > > V6(RouteMapMatchInner), > > + Vni(u32), > > we don't use this yet, but we can't inject a `protocol_type` field into > a `u32`. We probably need some kind of wrapper struct > ``` > pub struct VniMatch { > pub vni: u32, > } > ``` > ? not sure if there's a better way
I think this is good, as `serde(value = )` won't work. I also needed a rename on the `Vni` variant :) Thanks for the review! > [..]
