summaryrefslogtreecommitdiff
path: root/proto/rip/config.Y
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2020-02-21 02:35:50 +0100
committerOndrej Zajicek (work) <santiago@crfreenet.org>2020-02-21 02:35:50 +0100
commit22c3cf955dbbb65aa29e322efa70dabb749f0232 (patch)
tree85fa6ce3ab0334d5556eadb7358c176aa4a733c1 /proto/rip/config.Y
parent3343088a7164a54b1e6c6cf9648d8036a61e9827 (diff)
RIP: Demand circuit support (RFC 2091)
Diffstat (limited to 'proto/rip/config.Y')
-rw-r--r--proto/rip/config.Y6
1 files changed, 5 insertions, 1 deletions
diff --git a/proto/rip/config.Y b/proto/rip/config.Y
index 5b5f94a0..6cea7dd0 100644
--- a/proto/rip/config.Y
+++ b/proto/rip/config.Y
@@ -36,7 +36,8 @@ CF_KEYWORDS(RIP, NG, ECMP, LIMIT, WEIGHT, INFINITY, METRIC, UPDATE, TIMEOUT,
GARBAGE, PORT, ADDRESS, MODE, BROADCAST, MULTICAST, PASSIVE,
VERSION, SPLIT, HORIZON, POISON, REVERSE, CHECK, ZERO, TIME, BFD,
AUTHENTICATION, NONE, PLAINTEXT, CRYPTOGRAPHIC, MD5, TTL, SECURITY,
- RX, TX, BUFFER, LENGTH, PRIORITY, ONLY, LINK, RIP_METRIC, RIP_TAG)
+ RX, TX, BUFFER, LENGTH, PRIORITY, ONLY, LINK, DEMAND, CIRCUIT,
+ RIP_METRIC, RIP_TAG)
%type <i> rip_variant rip_auth
@@ -102,6 +103,7 @@ rip_iface_start:
RIP_IFACE->update_time = RIP_DEFAULT_UPDATE_TIME;
RIP_IFACE->timeout_time = RIP_DEFAULT_TIMEOUT_TIME;
RIP_IFACE->garbage_time = RIP_DEFAULT_GARBAGE_TIME;
+ RIP_IFACE->rxmt_time = RIP_DEFAULT_RXMT_TIME;
};
rip_iface_finish:
@@ -149,9 +151,11 @@ rip_iface_item:
| SPLIT HORIZON bool { RIP_IFACE->split_horizon = $3; }
| POISON REVERSE bool { RIP_IFACE->poison_reverse = $3; }
| CHECK ZERO bool { RIP_IFACE->check_zero = $3; }
+ | DEMAND CIRCUIT bool { RIP_IFACE->demand_circuit = $3; }
| UPDATE TIME expr { RIP_IFACE->update_time = $3 S_; if ($3<=0) cf_error("Update time must be positive"); }
| TIMEOUT TIME expr { RIP_IFACE->timeout_time = $3 S_; if ($3<=0) cf_error("Timeout time must be positive"); }
| GARBAGE TIME expr { RIP_IFACE->garbage_time = $3 S_; if ($3<=0) cf_error("Garbage time must be positive"); }
+ | RETRANSMIT TIME expr_us { RIP_IFACE->rxmt_time = $3; if ($3<=0) cf_error("Retransmit time must be positive"); }
| ECMP WEIGHT expr { RIP_IFACE->ecmp_weight = $3 - 1; if (($3<1) || ($3>256)) cf_error("ECMP weight must be in range 1-256"); }
| RX BUFFER expr { RIP_IFACE->rx_buffer = $3; if (($3<256) || ($3>65535)) cf_error("RX length must be in range 256-65535"); }
| TX LENGTH expr { RIP_IFACE->tx_length = $3; if (($3<256) || ($3>65535)) cf_error("TX length must be in range 256-65535"); }