Skip to content

Commit 2d35f15

Browse files
authored
Merge pull request #1306 from kernelkit/rip
2 parents 167184d + a6966df commit 2d35f15

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+4135
-115
lines changed

doc/ChangeLog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,17 @@ All notable changes to the project are documented in this file.
88

99
### Changes
1010

11+
- Add RIPv2 routing support, issue #582
1112
- Add support for configurable OSPF debug logging, issue #1281. Debug options
1213
can now be enabled per category (bfd, packet, ism, nsm, default-information,
1314
nssa). All debug options are disabled by default to prevent log flooding in
1415
production environments. See the documentation for usage examples
16+
- Add support for "routing interfaces", issue #647. Lists interfaces with IP
17+
forwarding. Inspect from CLI using `show interface`, look for `` flag
18+
19+
### Fixes
20+
21+
N/A
1522

1623
[v25.11.0][] - 2025-12-02
1724
-------------------------

doc/networking.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,7 @@ Currently supported YANG models:
13391339
| ietf-ipv4-unicast-routing | Static IPv4 unicast routing |
13401340
| ietf-ipv6-unicast-routing | Static IPv6 unicast routing |
13411341
| ietf-ospf | OSPF routing |
1342+
| ietf-rip | RIP routing |
13421343
| infix-routing | Infix deviations and extensions |
13431344

13441345
The base model, ietf-routing, is where all the other models hook in. It
@@ -1545,6 +1546,121 @@ all options back to `false`:
15451546
admin@example:/>
15461547

15471548

1549+
### RIP Routing
1550+
1551+
The system supports RIP dynamic routing for IPv4, i.e., RIPv2. To enable
1552+
RIP and set active interfaces:
1553+
1554+
admin@example:/config/> edit routing control-plane-protocol ripv2 name default rip
1555+
admin@example:/config/routing/…/rip/> set interfaces interface e0
1556+
admin@example:/config/routing/…/rip/> set interfaces interface e1
1557+
admin@example:/config/routing/…/rip/> leave
1558+
admin@example:/>
1559+
1560+
> [!TIP]
1561+
> Remember to enable [IPv4 forwarding](#ipv4-forwarding) for all the
1562+
> interfaces you want to route between.
1563+
1564+
1565+
#### RIP interface settings
1566+
1567+
By default, interfaces send and receive RIPv2 packets. To control the
1568+
RIP version per interface:
1569+
1570+
admin@example:/config/routing/…/rip/> edit interfaces interface e0
1571+
admin@example:/config/routing/…/rip/interfaces/interface/e0/> set send-version 1
1572+
admin@example:/config/routing/…/rip/interfaces/interface/e0/> set receive-version 1-2
1573+
admin@example:/config/routing/…/rip/interfaces/interface/e0/> leave
1574+
admin@example:/>
1575+
1576+
Valid version values are `1`, `2`, or `1-2` (both versions).
1577+
1578+
To configure a passive interface (advertise network but don't send/receive
1579+
RIP updates):
1580+
1581+
admin@example:/config/routing/…/rip/> edit interfaces interface e0
1582+
admin@example:/config/routing/…/rip/interfaces/interface/e0/> set passive
1583+
admin@example:/config/routing/…/rip/interfaces/interface/e0/> leave
1584+
admin@example:/>
1585+
1586+
1587+
#### RIP global settings
1588+
1589+
RIP supports redistribution of connected and static routes:
1590+
1591+
admin@example:/config/routing/…/rip/> set redistribute connected
1592+
admin@example:/config/routing/…/rip/> set redistribute static
1593+
admin@example:/config/routing/…/rip/> leave
1594+
admin@example:/>
1595+
1596+
1597+
#### Debug RIPv2
1598+
1599+
The CLI provides various RIP status commands:
1600+
1601+
admin@example:/> show ip rip
1602+
1603+
Default version control: send version 2, receive version 2
1604+
Interface Send Recv Key-chain
1605+
e0 2 2
1606+
e1 2 2
1607+
1608+
Routing for Networks:
1609+
e0
1610+
e1
1611+
1612+
Routing Information Sources:
1613+
Gateway BadPackets BadRoutes Distance Last Update
1614+
10.0.1.2 0 0 120 00:00:16
1615+
Distance: (default is 120)
1616+
1617+
admin@example:/> show ip rip neighbor
1618+
1619+
ADDRESS BAD-PACKETS BAD-ROUTES
1620+
10.0.1.2 0 0
1621+
1622+
admin@example:/>
1623+
1624+
For more detailed troubleshooting, RIP debug logging can be enabled to
1625+
capture specific protocol events. Debug messages are written to the
1626+
routing log file (`/var/log/routing`).
1627+
1628+
> [!CAUTION]
1629+
> Debug logging significantly increases log output and may impact
1630+
> performance. Only enable debug categories needed for troubleshooting,
1631+
> and disable them when done.
1632+
1633+
To enable specific RIP debug categories:
1634+
1635+
admin@example:/> configure
1636+
admin@example:/config/> edit routing control-plane-protocol ripv2 name default rip debug
1637+
admin@example:/config/routing/…/rip/debug/> set events true
1638+
admin@example:/config/routing/…/rip/debug/> set packet true
1639+
admin@example:/config/routing/…/rip/debug/> leave
1640+
admin@example:/>
1641+
1642+
Available debug categories include:
1643+
1644+
- `events`: RIP events (sending/receiving packets, timers, interface changes)
1645+
- `packet`: Detailed packet debugging (packet dumps with origin and port)
1646+
- `kernel`: Kernel routing table updates (route add/delete, interface updates)
1647+
1648+
All debug options are disabled by default. Refer to the `infix-routing`
1649+
YANG model for the complete list of available debug options.
1650+
1651+
To view current debug settings:
1652+
1653+
admin@example:/> show running-config routing control-plane-protocol
1654+
1655+
To disable all debug logging, simply delete the debug settings or set
1656+
all options back to `false`:
1657+
1658+
admin@example:/> configure
1659+
admin@example:/config/> delete routing control-plane-protocol ripv2 name default rip debug
1660+
admin@example:/config/> leave
1661+
admin@example:/>
1662+
1663+
15481664
### View routing table
15491665

15501666
The routing table can be inspected from the operational datastore, XPath
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# --log-level debug
2+
RIPD_ARGS="-A 127.0.0.1 -u frr -g frr -f /etc/frr/ripd.conf --log syslog"
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
service [2345] log:null <pid/zebra> ripd -A 127.0.0.1 -u frr -g frr -- RIP daemon
1+
service <pid/zebra> env:-/etc/default/ripd \
2+
[2345] ripd $RIPD_ARGS -- RIP daemon

0 commit comments

Comments
 (0)