Age | Commit message (Collapse) | Author |
|
* ospf_{apiserver,te}.c: ospf_lsa_free's should be ospf_lsa_unlock.
|
|
* ospf_ia.c: (process_summary_lsa) Only an ABR has any reason to
ignore stub area summary default. Even so it seems a strange
check, add a comment to that effect.
|
|
* ospfd.c: (ospf_network_match_iface) revert to previous network
statement match behaviour.
|
|
* ospf_packet.c: (ospf_write_frags) remove iov arg, msg already points
to it. Add convenience pointer to msg->msg_iov[1], and use this,
fixing the unfortunate borkenness introduced in moving of this code
to a function.
(ospf_write) remove iovp and fix up call to previous.
(ospf_ls_upd_packet_new) cast size to long int - unfortunately
glibc's size_t format modifier is not portable.
|
|
* ospf_packet.c: (ospf_ls_upd_packet_new) Format for size_t should
be ld.
* ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of
THREAD_ARG to store an integer, but it should at least use same
same type to retrieve the value. Assert value is sane.
|
|
* ospf_packet.c: (ospf_write_frags) Add debug output
(ospf_write) set type early, so we can pass it to
ospf_write_frags.
(ospf_ls_upd_packet_new) print size in debug output when too large
packet is encountered.
|
|
|
|
* ospfd/ospf_packet.c: setsockopt_pktinfo -> setsockopt_ifindex
* zebra/irdp_main.c: ditto
|
|
* ospf_network.c: (ospf_sock_init) call neutral setsock_ifindex()
function.
* ospf_packet.c: (ospf_read) manually look up ifindex
if system could not have returned one, eg openbsd.
|
|
ripd might need some more testing though.
|
|
initializes connection, and "no smux peer" command terminates it. Fixes
bugzilla #47 and #112.
|
|
reducing various configure options.
|
|
|
|
|
|
* (global) Const char update and signed/unsigned fixes.
* (various headers) size defines should be unsigned.
* ospf_interface.h: remove duplicated defines, include the
authoritative header - though, these defines should probably
be moved to a dedicated header, or ospfd.h.
* ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned.
* ospf_packet.c: (ospf_write) cast result of shift to unsigned.
|
|
* ospf_dump.c: (ospf_ip_header_dump) Assume header is in host order
remove ntohs that should have dissappeared. Take struct ip
as argument, caller has to know there's an IP header at start of
stream anyway.
* ospf_dump.h: update declaration of ospf_ip_header_dump.
* ospf_packet.c: (ospf_write) correct call to
sockopt_iphdrincl_swab_htosys which was munging the header.
(ospf_recv_packet) ip_len is needed for old OpenBSD fixup.
(ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as
we have it.
|
|
|
|
* ospf_apiserver.c (ospf_apiserver_unregister_opaque_type): Don't
use of variable names 'node' and 'nextnode' to avoid possible
conflict with list macros. Move variable declaration inside for
loop after a statement to top of function.
|
|
* ospf_snmp.c: Missed list typedef update
* ospf_dump.c: Include sockopt.h for header swab functions.
|
|
* ospf_packet.c: replace ospf_swap_iph_to... with
sockopt_iphdrincl_swab_...
|
|
|
|
* ospf_dump.c: (ospf_ip_header_dump) Use HAVE_IP_HDRINCL_BSD_ORDER
Apply to offset too. Print ip_cksum, lets not worry about
possible 2.0.37 compile problems.
* ospf_packet.c: (ospf_swap_iph_to{n,h}) Use
HAVE_IP_HDRINCL_BSD_ORDER.
(ospf_recv_packet) ditto.
(ospf_write) Fixup iov argument to ospf_write_frags.
|
|
* ospf_packet.c: (ospf_write) (struct msghdr).msg_name is caddr_t
on most platforms.
(ospf_recv_packet) ditto. And msg_flags is not always there
memset struct then set fields we care about rather than
initialise all fields individually.
|
|
|
|
* ospf_apiserver.{c,h}: (ospf_apiserver_term) loops calling
ospf_apiserver_free, which deletes referenced nodes from
apiserver_list, fixed.
|
|
|
|
* ospf_apiserver.{c,h}: lists typedef removal cleanup.
update some list loops to LIST_LOOP. some miscellaneous indent
fixups.
(ospf_apiserver_unregister_opaque_type) fix listnode_delete of
referenced node in loop.
* ospf_interface.h: lists typedef removal cleanup.
* ospf_opaque.{c,h}: lists typedef removal cleanup. update some list
loops to LIST_LOOP. miscellaneous style and indent fixups.
* ospf_te.{c,h}: ditto
* ospf_packet.c: lists typedef removal cleanup.
|
|
|
|
* ospf_packet.c: Fix bugzilla #107
(ospf_packet_max) get rid of the magic 88 constant
(ospf_swab_iph_ton) new function. set ip header to network order,
taking BSDisms into account.
(ospf_swab_iph_toh) the inverse.
(ospf_write) Add support for IP fragmentation, will only work on
linux though, other kernels make it impossible. get rid of the
magic 4 constant.
(ospf_make_ls_upd) Bound check to end of stream, not to
interface mtu.
(ospf_ls_upd_packet_new) New function, allocate upd packet
taking oversized LSAs into account.
(ospf_ls_upd_queue_send) use ospf_ls_upd_packet_new to allocate,
rather than statically allocating mtu sized packet buffer, which
actually was wrong - it didnt take ip header into account, which
should not be included in packet buffer.
(ospf_ls_upd_send_queue_event) minor tweaks and remove
TODO comment.
|
|
support of more significant changes not in this commit. The last item
in the ChangeLog below may be needed for p2mp to work correctly.
2004-08-31 David Wiggins <dwiggins@bbn.com>
* hash.c (hash_iterate): Save next pointer before calling
procedure, so that iteration works even if the called procedure
deletes the hash backet.
* linklist.h (listtail): new macro, not yet used.
2004-08-31 David Wiggins <dwiggins@bbn.com>
* ospf_spf.c (ospf_spf_calculate): Many more comments and debug
print statements. New function ospf_vertex_dump used in debugging.
2004-08-31 David Wiggins <dwiggins@bbn.com>
* ospf_spf.h (struct vertex): Comments for flags and structure members.
2004-08-31 David Wiggins <dwiggins@bbn.com>
* ospf_route.c: When finding an alternate route, log cost as well.
2004-08-31 David Wiggins <dwiggins@bbn.com>
* ospf_interface.c (ospf_lookup_if_params): Initialize af in
struct prefix allocated on stack.
2004-08-31 David Wiggins <dwiggins@bbn.com>
* ospf_packet.c (ospf_ls_ack_send_delayed): In p2mp mode, send
acks to AllSPFRouters, rather than All-DR.
|
|
|
|
* ospf_spf.c (ospf_nexthop_calculation): Initialize address family
in on-stack struct prefix_ipv4. Fixes point-to-multipoint SPF
calculation.
|
|
* ospf_packet.c (ospf_recv_packet): adjust size declaration of
buffer used to get interface index so that it compiles on other
than Linux and includes the required alignment space. Probably
this was only working on sparc/sparc64 because most of sockaddr_dl
was not being written.
|
|
* ospf_packet.c: update to match sockopt renames.
|
|
* ospf_spf.c: (ospf_spf_consider_nexthop) Add comment about issue.
Compare only against list head - all nexthops must be same cost
anyway, fixes a reference-listnode-after-delete bug noted by
Kir Kostuchenko.
(ospf_nexthop_calculation) Use ospf_spf_consider_nexthop for all
candidates attached to root.
|
|
* ospf_packet.c: (ospf_ls_upd_send_queue_event) fix thinko from
last fix for ospfd wedging due to oversize LSAs: dont list loop on
ospf_ls_upd_queue_send() - guaranteed segfault.
|
|
* ospf_opaque.c: (ospf_opaque_lsa_flush_schedule) do not NULL out
the LSA as then free_opaque_info_per_id() can never unlock (and
free) the LSA. Reported by Gunnar Stigen.
|
|
* ospf_network.c: Replace PKTINFO/RECVIF with call to
setsockopt_pktinfo
* ospf_packet.c: Use getsockopt_pktinfo_ifindex and
SOPT_SIZE_CMSG_PKTINFO_IPV4.
|
|
* ospf_packet.c: (ospf_ls_upd_send_queue_event) Partial fix for
problem reported by Peter Frost amongst others, where function
will spin indefinitely if update list contains LSAs greater than
MTU-headers or other condition leading to update list never being
cleared. Problem of what to do with these LSAs remains.
(ospf_make_ls_upd) add comment about large LSA problem,
indentation cleanup.
|
|
|
|
libzebra and libospfapiclient are now built shared, and linked shared
with the daemons. This reduces the memory needed when running
multiple daemons; each daemon is at least 150k smaller. Static
libraries are still built, and libtool should use them on platforms
which don't have shared libaries. As with autoconf, the user of a
distribution does not need libtool; one just needs that to build from
CVS.
libospf.a is still a non-shared library, and still installed, not
because that makese sense, but because I don't understand why it is
the way it is now.
Note that the tree was tagged 'libtool-before' just before this commit.
|
|
|
|
* ospf_dump.c,ospf_lsa.c: Fix typos of merge of previous.
ospf_flood.c: (ospf_process_self_originated_lsa) fix zlog format.
|
|
* ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if
index is out of range.
ospf_flood.c: endianness fix
ospf_lsa.c: Missing ntohl's on (struct lsa *)->data->ls_seqnum
in various places.
|
|
used in route-map used to filter redistributions.
* Move ospf_prefix_list_update() function from ospfd.c to ospf_zebra.c.
|
|
* bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
(bgp_interface_address_delete) ditto.
(bgp_zebra_announce) ditto.
(bgp_zebra_withdraw) ditto.
* isis_zebra.c: Sync with zclient changes.
* zclient.c (zapi_ipv4_route) Follow Sowmini's lead and describe
message format.
* ospf6_zebra.c: Sync to zclient changes
* ospf_zebra.c: Sync with lib/zclient changes
* rip_zebra.c: sync with zclient changes.
* rip_interface.c: ditto.
* ripng_{interface,zebra}.c: sync with zclient changes
2004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
* zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route
(zapi_ipv4_delete) ditto.
(zapi_ipv4_route) add/delete a route by way of cmd arg.
(zapi_ipv6_add) collapsed into zapi_ipv6_route.
(zapi_ipv6_delete) ditto.
(zapi_ipv6_route) add/delete a route by way of cmd arg.
(zebra_interface_address_delete_read) collapsed into
zebra_interface_address_read.
(zebra_interface_address_delete_read) ditto.
(zebra_interface_address_read) read address add/delete messages
by way of type argument. Describe command message format.
(zebra_interface_add_read) Unconditionally read new ifmtu6 field.
Describe command message format.
(zebra_interface_state_read) Unconditionally read new ifmtu6 field.
(zclient_redistribute_set) Collapsed into zclient_redistribute
(zclient_redistribute_unset) ditto
(zclient_redistribute) set/unset redistribution.
(zclient_redistribute_default_set) Collapsed into
zclient_redistribute_default.
(zclient_redistribute_default_unset) ditto.
(zclient_redistribute_default) Redistribute default set/unset.
* zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add
zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add
zclient_redistribute. Ditto for
zclient_redistribute_default_{set/unset}.
|
|
* ospf_network.c: (ospf_sock_init) Check whether IP_HDRINCL is
defined. Warn at compile and runtime. Use
IPTOS_PREC_INTERNETCONTROL otherwise.
|
|
* ospf_interface.c: (ospf_vl_set_params) Catch changes of interface
address for either end of a virtual-link, and hence potential cost
changes.
|
|
* ospf_packet.c: (ospf_associate_packet_vl) cleanup, move
some of the checks up to ospf_read, return either a
virtual link oi, or NULL.
(ospf_read) Cleanup, make it responsible for checks. Remove
the nbr lookup - moved to ospf_neighbor. Adjust all nbr
lookups to use new wrappers exported by ospf_neighbor.
* ospf_neighbor.h: Add ospf_neigbour_get and ospf_nbr_lookup.
* ospf_neighbor.c: (ospf_neigbour_get) Index ospf_interface
neighbour table by router-id for virtual-link ospf_interfaces,
not by peer_addr (which breaks for asymmetric vlinks)
(ospf_nbr_lookup) add a wrapper for nbr lookups to deal with
above.
|
|
|