Skip to content

deprecated options

Thomas Mangin edited this page May 14, 2026 · 6 revisions

Pre-Alpha. This page describes behavior that may change.

Configuration syntax that used to work and no longer does, with the migration path for each. ze config migrate handles every item on this list automatically. Read this page only if you want to know what the migrator is doing to your file, or if you want to fix the syntax by hand without running the migrator.

The tool does the work:

ze config validate config.conf              # Show what needs migration
ze config migrate --dry-run config.conf     # Preview the changes
ze config migrate config.conf -o new.conf   # Apply and write

v2 syntax (deprecated)

The neighbor keyword

neighbor was renamed to peer, and the IP and AS moved into nested remote { } and local { } containers.

Before:

neighbor 192.0.2.1 {
    local-as 65000;
    peer-as  65001;
}

After:

peer upstream1 {
    connection { remote { ip 192.0.2.1; } }
    session    { asn { local 65000; remote 65001; } }
}

Run ze config migrate config.conf -o config-v3.conf.

Root-level peer globs

Glob patterns for peer matching moved into a template { match } block. Peer definitions are now always for actual peers.

Before:

peer * {
    hold-time 90;
}

peer 192.168.*.* {
    hold-time 180;
}

After:

template {
    match * {
        timer { hold-time 90; }
    }
    match 192.168.*.* {
        timer { hold-time 180; }
    }
}

template { neighbor }

Renamed to template { group }, because a template block is not a neighbor.

Before:

template {
    neighbor ibgp-rs {
        peer-as 65000;
    }
}

After:

template {
    group ibgp-rs {
        peer-as 65000;
    }
}

Unsupported ExaBGP features

The migrator parses and silently ignores a handful of ExaBGP features that Ze does not implement. The config loads, the session comes up, and the feature is absent. None of these are blockers for migration in practice: the use cases are rare and nobody has asked for them.

multi-session capability

capability {
    multi-session;    # parsed, ignored
}

ExaBGP-specific extension. Ze uses standard BGP session handling. If you actually need multi-session targeting, raise an issue.

operational capability and block

capability {
    operational;      # parsed, ignored
}

peer upstream1 {
    connection { remote { ip 192.0.2.1; } }
    session    { asn { remote 65001; } }
    operational {     # parsed, ignored
        # ...
    }
}

ExaBGP operational messages (ASM, ADM, RPCQ) are not supported. The capability advertisement is dropped, the block is ignored.

The migration workflow

# Check what needs migration
ze config validate config.conf

# Preview changes
ze config migrate --dry-run config.conf

# Apply migration to a new file
ze config migrate config.conf -o config-v3.conf

# Validate the result
ze config validate config-v3.conf

The full list of named transformations is visible with ze config migrate --list. Each transformation runs in order, and transformations that do not apply to your config are skipped.

See also

Adapted from main/docs/deprecated-options.md.

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally