One policy model, seven platforms
Write policy once as a vendor-neutral intermediate representation; ispforge compiles it to each platform's native syntax and speaks its native management protocol. Mix vendors freely — the intent is the same everywhere.
Compiled per platform, spoken in its own protocol
The same profile renders correct configuration for each target and deploys over the protocol that platform actually uses — NETCONF, the RouterOS REST API, eAPI, or vtysh. Idempotent renders clean up before they apply, so you never leave orphaned config behind.
Mix platforms under one control plane
Junos at the edge, MikroTik in aggregation, FRR and VyOS in the lab — same policy model, each rendered to its own native config.


What's emitted where
Not every feature exists on every platform. We're honest about it — where a knob can't be emitted, the rest of your config still deploys normally.
| Feature | Junos | IOS-XR | IOS-XE | EOS | FRR | VyOS | MikroTik |
|---|---|---|---|---|---|---|---|
| IPv4 / IPv6 unicast policy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Max-prefix limits | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| RPKI origin validation | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| eBGP multihop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Default-route origination | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Next-hop-self | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Route reflector (cluster-id + client) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| Add-path (RFC 7911) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| MD5 / BFD / Graceful Restart | ✓ | — | — | — | — | — | — |
| BGP FlowSpec — originate | ✓ | ✓ | ✗ | — | — | ✗ | ✗ |
✓ emitted — not yet ✗ not possible on the platform · FRR / EOS receive & propagate FlowSpec but don't originate
Mix vendors. Keep one policy model.
Junos at the edge, MikroTik in the aggregation, FRR in the lab — one intent, rendered correctly for each.