mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-05 21:48:46 +00:00
Fix lots of warnings. Some const and type-pun breaks strict-aliasing
warnings left but much reduced.
* bgp_advertise.h: (struct bgp_advertise_fifo) is functionally identical to
(struct fifo), so just use that. Makes it clearer the beginning of
(struct bgp_advertise) is compatible with with (struct fifo), which seems
to be enough for gcc.
Add a BGP_ADV_FIFO_HEAD macro to contain the right cast to try shut up
type-punning breaks strict aliasing warnings.
* bgp_packet.c: Use BGP_ADV_FIFO_HEAD.
(bgp_route_refresh_receive) fix an interesting logic error in
(!ok || (ret != BLAH)) where ret is only well-defined if ok.
* bgp_vty.c: Peer commands should use bgp_vty_return to set their return.
* jhash.{c,h}: Can take const on * args without adding issues & fix warnings.
* libospf.h: LSA sequence numbers use the unsigned range of values, and
constants need to be set to unsigned, or it causes warnings in ospf6d.
* md5.h: signedness of caddr_t is implementation specific, change to an
explicit (uint_8 *), fix sign/unsigned comparison warnings.
* vty.c: (vty_log_fixed) const on level is well-intentioned, but not going
to fly given iov_base.
* workqueue.c: ALL_LIST_ELEMENTS_RO tests for null pointer, which is always
true for address of static variable. Correct but pointless warning in
this case, but use a 2nd pointer to shut it up.
* ospf6_route.h: Add a comment about the use of (struct prefix) to stuff 2
different 32 bit IDs into in (struct ospf6_route), and the resulting
type-pun strict-alias breakage warnings this causes. Need to use 2
different fields to fix that warning?
general:
* remove unused variables, other than a few cases where they serve a
sufficiently useful documentary purpose (e.g. for code that needs
fixing), or they're required dummies. In those cases, try mark them as
unused.
* Remove dead code that can't be reached.
* Quite a few 'no ...' forms of vty commands take arguments, but do not
check the argument matches the command being negated. E.g., should
'distance X <prefix>' succeed if previously 'distance Y <prefix>' was set?
Or should it be required that the distance match the previously configured
distance for the prefix?
Ultimately, probably better to be strict about this. However, changing
from slack to strict might expose problems in command aliases and tools.
* Fix uninitialised use of variables.
* Fix sign/unsigned comparison warnings by making signedness of types consistent.
* Mark functions as static where their use is restricted to the same compilation
unit.
* Add required headers
* Move constants defined in headers into code.
* remove dead, unused functions that have no debug purpose.
(cherry picked from commit 7aa9dcef80b2ce50ecaa77653d87c8b84e009c49)
Conflicts:
bgpd/bgp_advertise.h
bgpd/bgp_mplsvpn.c
bgpd/bgp_nexthop.c
bgpd/bgp_packet.c
bgpd/bgp_route.c
bgpd/bgp_routemap.c
bgpd/bgp_vty.c
lib/command.c
lib/if.c
lib/jhash.c
lib/workqueue.c
ospf6d/ospf6_lsa.c
ospf6d/ospf6_neighbor.h
ospf6d/ospf6_spf.c
ospf6d/ospf6_top.c
ospfd/ospf_api.c
zebra/router-id.c
zebra/rt_netlink.c
zebra/rt_netlink.h
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| Makefile.am | ||
| ospf6_abr.c | ||
| ospf6_abr.h | ||
| ospf6_area.c | ||
| ospf6_area.h | ||
| ospf6_asbr.c | ||
| ospf6_asbr.h | ||
| ospf6_bfd.c | ||
| ospf6_bfd.h | ||
| ospf6_flood.c | ||
| ospf6_flood.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_proto.c | ||
| ospf6_proto.h | ||
| ospf6_route.c | ||
| ospf6_route.h | ||
| ospf6_snmp.c | ||
| ospf6_snmp.h | ||
| ospf6_spf.c | ||
| ospf6_spf.h | ||
| ospf6_top.c | ||
| ospf6_top.h | ||
| ospf6_zebra.c | ||
| ospf6_zebra.h | ||
| ospf6d.c | ||
| ospf6d.conf.sample | ||
| ospf6d.h | ||
| OSPFv3-MIB.txt | ||
| README | ||
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>