mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-03-24 09:12:05 +00:00
If a end users does something like this:
int enp39s0
ipv6 ospf6 hello-interval 65535
And then the timer pops and we send the hello and immediately
if the end user does this:
ipv6 ospf6 hello-interval 5
The timer is not being reset and FRR waits the full 65k seconds
before sending the hello again, which then immediately sets
the next hello to go out in 5 seconds.
When FRR receives the new timer value, look at how much time
is left on the timer in seconds. If this value is greater
than the new hello timer, stop the timer and set it too that
value.
This should fix a CI system test failure found, where the
system is testing setting timer from things like 12 seconds
to 65k seconds then back down to 12 and that the ospf6 neighbor
relationship stays up.
The code was also changed from thread_add_event to thread_add_timer
in all cases. I am not sure what would happen if a show command
comes in for a thread timer remaining with an event instead of a timer
just make it consistent.
This was chased down because the support bundle showed this:
r0# show ipv6 ospf6 vrf all interface
r0-r1-eth0 is up, type BROADCAST
Interface ID: 6
Internet Address:
inet6: fe80::a4ea:d3ff:fe35:cef1/64
inet6: fd00::1/64
Instance ID 0, Interface MTU 1500 (autodetect: 1500)
MTU mismatch detection: enabled
Area ID 0.0.0.0, Cost 10
State DR, Transmit Delay 1 sec, Priority 1
Timer intervals configured:
Hello 12(65480.960), Dead 48, Retransmit 5
And looking at the test code is doing stuff like this:
2022/05/16 17:08:15 OSPF6: [M7Q4P-46WDR] vty[5]@(config)# interface r1-r0-eth0
2022/05/16 17:08:15 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# ipv6 ospf6 hello-interval 65535
2022/05/16 17:08:15 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# no ipv6 ospf6 hello-interval
2022/05/16 17:08:16 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# ipv6 ospf6 hello-interval 1
2022/05/16 17:08:16 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# ipv6 ospf6 hello-interval 12
If the old timer value pops, the hello interval is set to 65k and never reset again.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| Makefile | ||
| ospf6_abr.c | ||
| ospf6_abr.h | ||
| ospf6_area.c | ||
| ospf6_area.h | ||
| ospf6_asbr.c | ||
| ospf6_asbr.h | ||
| ospf6_auth_trailer.c | ||
| ospf6_auth_trailer.h | ||
| ospf6_bfd.c | ||
| ospf6_bfd.h | ||
| ospf6_flood.c | ||
| ospf6_flood.h | ||
| ospf6_gr_helper.c | ||
| ospf6_gr.c | ||
| ospf6_gr.h | ||
| ospf6_interface.c | ||
| ospf6_interface.h | ||
| ospf6_intra.c | ||
| ospf6_intra.h | ||
| ospf6_lsa.c | ||
| ospf6_lsa.h | ||
| ospf6_lsdb.c | ||
| ospf6_lsdb.h | ||
| ospf6_main.c | ||
| ospf6_message.c | ||
| ospf6_message.h | ||
| ospf6_neighbor.c | ||
| ospf6_neighbor.h | ||
| ospf6_network.c | ||
| ospf6_network.h | ||
| ospf6_nssa.c | ||
| ospf6_nssa.h | ||
| ospf6_proto.c | ||
| ospf6_proto.h | ||
| ospf6_route.c | ||
| ospf6_route.h | ||
| ospf6_routemap_nb_config.c | ||
| ospf6_routemap_nb.c | ||
| ospf6_routemap_nb.h | ||
| ospf6_snmp.c | ||
| ospf6_spf.c | ||
| ospf6_spf.h | ||
| ospf6_top.c | ||
| ospf6_top.h | ||
| ospf6_zebra.c | ||
| ospf6_zebra.h | ||
| ospf6d.c | ||
| ospf6d.h | ||
| README | ||
| subdir.am | ||
Zebra OSPF daemon for IPv6 network
2003/08/18
README for newer code is not yet. General usage should remain
the same. For further usage, see command helps by typing '?'
in vty, and then imagin ! ;p) Previous README contents follows.
Zebra OSPF daemon for IPv6 network
2001/12/20
Zebra OSPF6d is OSPF version 3 daemon which is specified by
"OSPF for IPv6" (RFC 2740).
*** NOTE ***
Zebra ospf6d is in development yet. It may lack some functionalities,
and may have some bugs. Use the latest version from the anoncvs
repository (http://www.zebra.org/cvs.html) !
This file README is like memo yet, so please feel free to ask
<yasu@sfc.wide.ad.jp> by E-mail. Patches will be appriciated.
ospf6d's vty port was default to 2606/tcp.
Use commands below.
VIEW NODE:
show ipv6 ospf6
To see Router-ID, uptime of ospf6d, some statistics.
show ipv6 ospf6 database ...
This command shows LSA database. You can specify
LS-type/LS-ID/Advertising-Router of LSAs. '*' is recognized.
show ipv6 ospf6 interface ...
To see the status of the OSPF interface, and the configuration
like interface costs.
show ipv6 ospf6 neighbor ...
Shows state of neighbors and choosed (Backup) DR on the I/F.
show ipv6 ospf6 route (X::X)
This command shows internal routing table of the ospf6d.
Routes not calculated by OSPFv3 (like connected routes)
are not shown. If Address is specified (X::X), shows the route
that the address matches.
show ipv6 ospf6 route redistribute (X::X)
Shows the routes advertised as AS-External routes by the router
itself. If Address is specified (X::X), shows the route
that the address matches.
CONFIG NODE:
interface NAME
To enter INTERFACE NODE
router ospf6 ...
To enter OSPF6 NODE
INTERFACE NODE:
ipv6 ospf6 cost COST
Sets the interface's output cost. Depends on interface bandwidth by default.
ipv6 ospf6 hello-interval HELLOINTERVAL
Sets the interface's Hello Interval. default 10
ipv6 ospf6 dead-interval DEADINTERVAL
Sets the interface's Router Dead Interval. default 40
ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL
Sets the interface's Rxmt Interval. default 5
ipv6 ospf6 priority PRIORITY
Sets the interface's Router Priority. default 1
ipv6 ospf6 transmit-delay TRANSMITDELAY
Sets the interface's Inf-Trans-Delay. default 1
OSPF6 NODE:
router-id A.B.C.D
Sets the router's Router-ID
interface NAME area AREA
Binds interface to specified Area, and start
sending OSPFv3 packets.
auto-cost reference-bandwidth COST
Sets the reference bandwidth for cost calculations, where this
bandwidth is considered equivalent to an OSPF cost of 1, specified
in Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth
100Mbit/s or higher will have a cost of 1. Cost of lower bandwidth
links will be scaled with reference to this cost). This
configuration setting MUST be consistent across all routers within
the OSPF domain.
Sample configuration is in ospf6d.conf.sample.
--
Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
Kunihiro Ishiguro <kunihiro@zebra.org>