Configuration Syntax Changes
Ze has not shipped a stable configuration release yet. There is no public deprecation lifecycle for old config versions, and Ze does not promise a numbered generation ladder for config syntax.
Config compatibility is date-based. A config file records the schema stamp that
wrote it, and recovery chooses the newest rollback file that the running binary
can parse. For pre-release files or old examples, ze config migrate converts
known older shapes to the syntax expected by the current tree.
Compatibility rules
| Case | What Ze does |
|---|---|
| Current config | ze config validate <file> checks it directly. |
| Older pre-release Ze syntax | ze config migrate applies named transforms, then emits current syntax. |
| ExaBGP-shaped syntax | The migrator converts supported shapes and reports unsupported extensions. |
| Newer schema stamp after downgrade | Startup tries rollback files newest-first and writes back the first one this binary can parse. |
The transform names are descriptive implementation names, not public config
version numbers. Use ze config migrate --list to see the current list in the
binary you are running.
Older shapes the migrator recognizes
Root-level neighbor
Older examples sometimes used root-level neighbor blocks:
neighbor 192.0.2.1 {
local-as 65000;
peer-as 65001;
}
Current native config puts BGP under bgp {} and separates transport from BGP
session state:
bgp {
session { asn { local 65000; } }
peer upstream1 {
connection {
remote { ip 192.0.2.1; }
}
session {
asn { remote 65001; }
}
}
}
Root-level peer globs
Older configs could use root-level peer globs for shared defaults:
peer * {
hold-time 90;
}
Current config uses named groups and concrete peers:
bgp {
group default {
timer { receive-hold-time 90; }
peer upstream1 {
connection {
remote { ip 192.0.2.1; }
}
session {
asn { remote 65001; }
}
}
}
}
template { neighbor }
Older template neighbors became peer groups:
template {
neighbor ibgp-rs {
peer-as 65000;
}
}
Current config expresses the same default as a BGP group:
bgp {
group ibgp-rs {
session { asn { remote 65000; } }
}
}
Unsupported ExaBGP extensions
These ExaBGP extensions are recognized during migration, but Ze does not implement their behavior:
| Syntax | Result |
|---|---|
capability { multi-session; } |
Warning. Ze uses standard BGP session handling. |
capability { operational; } |
Warning. ExaBGP operational messages are not implemented. |
operational { ... } under a peer |
Warning. The block is not applied. |
Commands
# Check whether a file already matches the current binary
ze config validate config.conf
# Preview conversion without writing a new file
ze config migrate --dry-run config.conf
# Convert to stdout
ze config migrate config.conf
# Convert to a new file
ze config migrate -o config-current.conf config.conf
# List transforms in this binary
ze config migrate --list
See Configuration Migration for command details.