# FRR Minimal RTR Client Config

中文文档: [README.zh.md](./README.zh.md)

This folder provides a minimal FRR setup for black-box interop testing
against this repository's RTR server defaults.

Server defaults in this repo:
- TCP: `0.0.0.0:323`
- TLS: `0.0.0.0:324`

Reference:
- `src/main.rs`

## Files

- `daemons.example`: sample `/etc/frr/daemons`
- `frr.conf.example`: sample `/etc/frr/frr.conf`

## How to apply on an FRR host

1. Copy `daemons.example` to `/etc/frr/daemons`.
2. Copy `frr.conf.example` to `/etc/frr/frr.conf`.
3. Restart FRR:

```bash
sudo systemctl restart frr
```

## Verify

```bash
vtysh -c "show rpki configuration"
vtysh -c "show rpki cache-server"
vtysh -c "show rpki cache-connection"
vtysh -c "show rpki prefix-table"
```

If `show rpki cache-connection` is connected and `show rpki prefix-table`
contains VRPs, the RTR client path is working.

## Docker quick start

From repository root:

```bash
docker compose -f deploy/frr/docker-compose.yml up -d
docker exec -it frr-rpki-client vtysh -c "show rpki cache-connection"
docker exec -it frr-rpki-client vtysh -c "show rpki prefix-table"
```

Stop:

```bash
docker compose -f deploy/frr/docker-compose.yml down
```

## Notes

- This setup targets RTR over TCP (`rpki cache tcp`).
- Keep protocol-level conformance checks in Rust tests and
  `src/bin/rtr_debug_client`.
- `network_mode: host` expects your RTR server to be reachable at
  `127.0.0.1:323` from the Docker host.
