| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
There is a possiblity of some hostile netlink user getting
bogus responses in the conversation between zebra and kernel.
|
|
|
|
| |
More messages in case of netlink errors, and debugging
|
|
|
|
|
|
| |
When interface is created, associate it with any pre-existing
configuration. When interface is renamed, notify protocols that
is deleted/added but keep existing address information.
|
|
|
|
|
|
|
|
| |
This reverts commit 3b1779981cd67679dd4cddd70160859ca3d862d7.
Conflicts:
zebra/rt_netlink.c
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This resolves issue with static routes of multilink.
In the multilink case, route is created before device exists.
Later device is created as ppp0 and gets renamed to ml0.
Zebra needed to orphan the old interface structure and create
a new one to correctly match up the interface with the inactive
route.
|
|\ |
|
| |
| |
| |
| |
| | |
Need to delete then add since zebra has no clean way to pass around
rename, and the configuration is based on name not ifindex.
|
| |
| |
| |
| |
| | |
The name has to continue to exist after delete in order to prevent
crashes of daemon (BZ 3990) and restart of multilink interfaces (BZ 3987).
|
|/
|
|
|
| |
Kernel can sometimes send delete address messages after
device has been deleted.
|
|
|
|
|
|
|
| |
This addresses potential issues with link management when
multiple routing protocols are in use.
Also fix non-linux build issues
|
|\
| |
| |
| | |
Merge in current upstream version of quagga.
|
| |\
| | |
| | |
| | | |
Resolve all conflicts by using upstream version.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_parse_info) Linux doesn't check privledges
on receive, so avoid the overhead of lowering and raising the
priviledges on each received message
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_parse_info) There can be harmless races
such as adding an existing route, or deleting an already deleted
route. Don't bother logging these unless debugging is turned on.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_recvbuf) consolidate recvbuf setting
(netlink_socket) no need to set receive buffer on netlink sockets
generally
(kernel_init) set recvbuffer on the listen socket
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra/rt_netlink.c: This change removes the overhead of twiddling
the socket twice on every route change. The netlink support has
two sockets, one is used for request/response and should always
block. The other is used for asynchronous notification and should
always be non-blocking.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra/rt_netlink.c: Update the netlink socket BPF to cancel out
unwanted ACKs on the listen socket by matching on the PID.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
* lib/log.{c,h}: struct message argument should point to const
* */*.c: adjust to suit,
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra/rt_netlink.c: local functions should be static.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-08-13 Timo Teräs <timo.teras@iki.fi>
* zebra/rt_netlink.c: (netlink_route{,_multipath) Set protocol and
scope appropriately for both NEW and DELROUTE messages, to avoid
wiping out non-zebra routes on delete.
Signed-off-by: Paul Jakma <paul@quagga.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_install_filter) BPF filter to catch and
drop responses to zebra's own route messages.
(kernel_init) add BPF filter on the netlink socket.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2007-05-01 David L Stevens <dlstevens@us.ibm.com>
* (general) These changes collectively add route-map and
prefix-list support to zebra and fix a bug in "show
route-map" (with no argument).
* doc/main.texi: added route-map, prefix-list, ip protocol
and set src documentation
* lib/command.h: added PROTOCOL_NODE type
* lib/log.c: (proto_name2num) new function, protocol name to
number translation.
* lib/routemap.c: (vty_show_route_map) fixed "show route-map"
without route-map name
* lib/routemap.h: added RMAP_ZEBRA type
* lib/zebra.h: added proto_name2num() prototype
* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and
plist
* vtysh/Makefile.am: added zebra_routemap.c
* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP
* zebra/connected.c: (connected_up_ipv4) added src preference argument
to rib_add_ipv4()
* zebra/kernel_socket.c: (rtm_read) ditto
* zebra/main.c: added prefix list initialization
* zebra/Makefile.am: added zebra_routemap.c source file
* zebra/rib.h: added generic address union "g_addr" and use in
existing places that had an explicit union.
Added "src" to struct nexthop.
Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.
* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on
netlink messages.
(netlink_route_change) ditto
(netlink_route_multipath) ditto.
* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to
rib_add_ipv4() call.
* zebra/rtread_proc.c: (proc_route_read) ditto
* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.
(nexthop_ipv4_ifindex_add) ditto
(rib_add_ipv4) ditto
(nexthop_active_check) Add route-map processing.
* zebra/zebra_routemap.c: new file for zebra route-map commands.
* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol
(vty_show_ip_route_detail) added "src" printing
(vty_show_ip_route) ditto
(show_ip_protocol_cmd) new command, list routemaps.
(config_write_protocol) write out routemap protocl config.
(zebra_vty_init) Install the new routemap protocol commands.
* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg
(zebra_init) init zebra route-maps.
* zebra/zserv.h: add zebra_route_map_init
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating
whether a peer address has been configured. Comment now shows
the new interpretation of the destination addr: if ZEBRA_IFA_PEER
is set, then it must contain the destination address, otherwise
it may contain the broadcast address or be NULL.
(CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete
macros that were specific to IPv4 and not fully general.
(CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.
(CONNECTED_PREFIX) New macro giving the prefix to insert into
the RIB: if CONNECTED_PEER, then use the destination (peer) address,
else use the address field.
(CONNECTED_ID) New macro to come up with an identifying address
for the struct connected.
* if.c: (if_lookup_address, connected_lookup_address) Streamline
logic with new CONNECTED_PREFIX macro.
* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros
for better performance than the general prefix_copy function.
* zclient.c: (zebra_interface_address_read) For non-null destination
addresses, set prefixlen to equal the address prefixlen. This
is needed to get the new CONNECTED_PREFIX macro to work properly.
* connected.c: (connected_up_ipv4, connected_down_ipv4,
connected_up_ipv6, connected_down_ipv6) Simplify logic using the
new CONNECTED_PREFIX macro.
(connected_add_ipv4) Set prefixlen in destination addresses (required
by the CONNECTED_PREFIX macro). Use CONNECTED_PEER macro instead
of testing for IFF_POINTOPOINT. Delete invalid warning message.
Warn about cases where the ZEBRA_IFA_PEER is set but no
destination address has been supplied (and turn off the flag).
(connected_add_ipv6) Add new flags argument so callers may set
the ZEBRA_IFA_PEER flag. If peer/broadcast address satisfies
IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.
Set prefixlen in destination address so CONNECTED_PREFIX will work.
* connected.h: (connected_add_ipv6) Add new flags argument so
callers may set the ZEBRA_IFA_PEER flag.
* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro
to decide whether the destination address is a peer or broadcast
address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).
* if_ioctl.c: (if_getaddrs) Instead of setting a peer address
only when the IFF_POINTOPOINT is set, we now accept a peer
address whenever it is available and not the same as the local
address. Otherwise (no peer address assigned), we check
for a broadcast address (regardless of the IFF_BROADCAST flag).
And must now pass a flags value of ZEBRA_IFA_PEER to
connected_add_ipv4 when a peer address is assigned.
The same new logic is used with the IPv6 code as well (and we
pass the new flags argument to connected_add_ipv6).
(if_get_addr) Do not bother to check IFF_POINTOPOINT: just
issue the SIOCGIFDSTADDR ioctl and see if we get back
a peer address not matching the local address (and set
the ZEBRA_IFA_PEER in that case). If there's no peer address,
try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.
* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl
without bothering to check the IFF_POINTOPOINT flag. And if
no peer address was found, just try the SIOCGLIFBRDADDR ioctl
without checking the IFF_BROADCAST flag. Call connected_add_ipv4
and connected_add_ipv6 with appropriate flags.
* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to
connected_add_ipv6.
* kernel_socket.c: (ifam_read) Must pass new flags argument to
connected_add_ipv6.
* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2
to determine local and possible peer address (so there's no longer
a test for IFF_POINTOPOINT). Set ZEBRA_IFA_PEER flag appropriately.
Pass new flags argument to connected_add_ipv6.
(netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast
to determine whether the connected destination address is a
broadcast address.
* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
Simplify logic by using new CONNECTED_PREFIX macro.
* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,
ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX
macro, both options collapse into the same code.
* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new
CONNECTED_ID macro.
(ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro
instead of testing the IFF_POINTOPOINT flag.
* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro
instead of testing with if_is_pointopoint. And add commented-out
code to implement alternative (in my opinion) more elegant behavior
that has no special-case treatment for PtP addresses.
(ospf_network_run) Use new CONNECTED_ID macro to simplify logic.
* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID
macro to simplify logic.
(rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does
not give a useful result if prefixlen is 32 (we require a peer
address in such cases).
* ripd.c: (rip_update_interface) Fix same bug as above.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2006-07-02 Paul Jakma <paul.jakma@sun.com>
* rt_netlink.c: (netlink_interface_addr) Fix CID #104, can not
proceed if addr is NULL.
* zebra_rib.c: (static_add_ipv6) Fix CID #18, double check
required arguments are supplied for the given nexthop type.
|
| | |
| | |
| | |
| | |
| | | |
Bugfix 3732
Notify routing protocols about MTU changes
|
| | |
| | |
| | |
| | |
| | | |
Avoid possible problems where netlink message is being formatted
with unsigned 32 bit value, which was being read as int.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Quagga needs to fully cleanout state when interface is deleted from
system.
Bugfix: 3962, 3693
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Set metric in RIB to keep OSPF happy, but don't set the
metric in the kernel since the kernel portion of connected route
has metric=0.
Bugfix 3668
|
| | |
| | |
| | |
| | |
| | |
| | | |
Bugfix 3658
If inactive device is renamed, just do it.
If active device is renamed, update RIB if needed.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Bugzilla 3681 fix.
Routes from 'ip route' default to protocol boot. Need to use this
same value when deleting or udpating.
|
| | |
| | |
| | |
| | |
| | |
| | | |
There are two distinct pid's in netlink message. The one in
the receive address is the pid of the sender (ie kernel),
the other in the netlink message is the originator (ie quagga or ip command).
|
| | |
| | |
| | |
| | | |
This reverts commit e5d63369e1f3fdc1c22ae15fe477de1f97022703.
|
| | |
| | |
| | |
| | |
| | | |
This is a refinement of the socket filter, and also closes a security
hole that would allow non-kernel messages to confuse quagga.
|
| | |
| | |
| | |
| | |
| | |
| | | |
This adds a new flag to the zebra daemon that causes it to add and
remove system routes (ie connected and kernel routes). This causes
user space (zebra) to do what the kernel was doing in hollwood.
|
| | |
| | |
| | |
| | | |
Message tables should be unaltered.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
ChangeLog
NEWS
bgpd/ChangeLog
bgpd/bgp_attr.c
bgpd/bgp_network.c
bgpd/bgp_packet.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h
lib/sockopt.c
lib/sockopt.h
lib/zebra.h
mkinstalldirs
zebra/rib.h
zebra/rt_netlink.c
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_install_filter) BPF filter to catch and
drop responses to zebra's own route messages.
(kernel_init) add BPF filter on the netlink socket.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2007-05-01 David L Stevens <dlstevens@us.ibm.com>
* (general) These changes collectively add route-map and
prefix-list support to zebra and fix a bug in "show
route-map" (with no argument).
* doc/main.texi: added route-map, prefix-list, ip protocol
and set src documentation
* lib/command.h: added PROTOCOL_NODE type
* lib/log.c: (proto_name2num) new function, protocol name to
number translation.
* lib/routemap.c: (vty_show_route_map) fixed "show route-map"
without route-map name
* lib/routemap.h: added RMAP_ZEBRA type
* lib/zebra.h: added proto_name2num() prototype
* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and
plist
* vtysh/Makefile.am: added zebra_routemap.c
* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP
* zebra/connected.c: (connected_up_ipv4) added src preference argument
to rib_add_ipv4()
* zebra/kernel_socket.c: (rtm_read) ditto
* zebra/main.c: added prefix list initialization
* zebra/Makefile.am: added zebra_routemap.c source file
* zebra/rib.h: added generic address union "g_addr" and use in
existing places that had an explicit union.
Added "src" to struct nexthop.
Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.
* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on
netlink messages.
(netlink_route_change) ditto
(netlink_route_multipath) ditto.
* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to
rib_add_ipv4() call.
* zebra/rtread_proc.c: (proc_route_read) ditto
* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.
(nexthop_ipv4_ifindex_add) ditto
(rib_add_ipv4) ditto
(nexthop_active_check) Add route-map processing.
* zebra/zebra_routemap.c: new file for zebra route-map commands.
* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol
(vty_show_ip_route_detail) added "src" printing
(vty_show_ip_route) ditto
(show_ip_protocol_cmd) new command, list routemaps.
(config_write_protocol) write out routemap protocl config.
(zebra_vty_init) Install the new routemap protocol commands.
* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg
(zebra_init) init zebra route-maps.
* zebra/zserv.h: add zebra_route_map_init
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating
whether a peer address has been configured. Comment now shows
the new interpretation of the destination addr: if ZEBRA_IFA_PEER
is set, then it must contain the destination address, otherwise
it may contain the broadcast address or be NULL.
(CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete
macros that were specific to IPv4 and not fully general.
(CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.
(CONNECTED_PREFIX) New macro giving the prefix to insert into
the RIB: if CONNECTED_PEER, then use the destination (peer) address,
else use the address field.
(CONNECTED_ID) New macro to come up with an identifying address
for the struct connected.
* if.c: (if_lookup_address, connected_lookup_address) Streamline
logic with new CONNECTED_PREFIX macro.
* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros
for better performance than the general prefix_copy function.
* zclient.c: (zebra_interface_address_read) For non-null destination
addresses, set prefixlen to equal the address prefixlen. This
is needed to get the new CONNECTED_PREFIX macro to work properly.
* connected.c: (connected_up_ipv4, connected_down_ipv4,
connected_up_ipv6, connected_down_ipv6) Simplify logic using the
new CONNECTED_PREFIX macro.
(connected_add_ipv4) Set prefixlen in destination addresses (required
by the CONNECTED_PREFIX macro). Use CONNECTED_PEER macro instead
of testing for IFF_POINTOPOINT. Delete invalid warning message.
Warn about cases where the ZEBRA_IFA_PEER is set but no
destination address has been supplied (and turn off the flag).
(connected_add_ipv6) Add new flags argument so callers may set
the ZEBRA_IFA_PEER flag. If peer/broadcast address satisfies
IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.
Set prefixlen in destination address so CONNECTED_PREFIX will work.
* connected.h: (connected_add_ipv6) Add new flags argument so
callers may set the ZEBRA_IFA_PEER flag.
* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro
to decide whether the destination address is a peer or broadcast
address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).
* if_ioctl.c: (if_getaddrs) Instead of setting a peer address
only when the IFF_POINTOPOINT is set, we now accept a peer
address whenever it is available and not the same as the local
address. Otherwise (no peer address assigned), we check
for a broadcast address (regardless of the IFF_BROADCAST flag).
And must now pass a flags value of ZEBRA_IFA_PEER to
connected_add_ipv4 when a peer address is assigned.
The same new logic is used with the IPv6 code as well (and we
pass the new flags argument to connected_add_ipv6).
(if_get_addr) Do not bother to check IFF_POINTOPOINT: just
issue the SIOCGIFDSTADDR ioctl and see if we get back
a peer address not matching the local address (and set
the ZEBRA_IFA_PEER in that case). If there's no peer address,
try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.
* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl
without bothering to check the IFF_POINTOPOINT flag. And if
no peer address was found, just try the SIOCGLIFBRDADDR ioctl
without checking the IFF_BROADCAST flag. Call connected_add_ipv4
and connected_add_ipv6 with appropriate flags.
* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to
connected_add_ipv6.
* kernel_socket.c: (ifam_read) Must pass new flags argument to
connected_add_ipv6.
* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2
to determine local and possible peer address (so there's no longer
a test for IFF_POINTOPOINT). Set ZEBRA_IFA_PEER flag appropriately.
Pass new flags argument to connected_add_ipv6.
(netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast
to determine whether the connected destination address is a
broadcast address.
* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
Simplify logic by using new CONNECTED_PREFIX macro.
* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,
ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX
macro, both options collapse into the same code.
* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new
CONNECTED_ID macro.
(ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro
instead of testing the IFF_POINTOPOINT flag.
* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro
instead of testing with if_is_pointopoint. And add commented-out
code to implement alternative (in my opinion) more elegant behavior
that has no special-case treatment for PtP addresses.
(ospf_network_run) Use new CONNECTED_ID macro to simplify logic.
* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID
macro to simplify logic.
(rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does
not give a useful result if prefixlen is 32 (we require a peer
address in such cases).
* ripd.c: (rip_update_interface) Fix same bug as above.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
2006-07-02 Paul Jakma <paul.jakma@sun.com>
* rt_netlink.c: (netlink_interface_addr) Fix CID #104, can not
proceed if addr is NULL.
* zebra_rib.c: (static_add_ipv6) Fix CID #18, double check
required arguments are supplied for the given nexthop type.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
2006-01-17 Paul Jakma <paul.jakma@sun.com>
* kernel_socket.c: (ifam_read) Read metric from RTM_NEWADDR.
If interface is an alias, pass the alias as a label for
connected_add_ipv{4,6}.
* rt_netlink.c: (netlink_interface_addr) print out
IFA_CACHEINFO info, if present, when debugging kernel
messages.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
2005-11-23 Paul Jakma <paul.jakma@sun.com>
* (general) fix some small compile errors, and mark several
functions as static.
* kernel_socket.c: (ifan_read) should be static.
fix missing brackets.
(ifm_read,ifam_read,rtm_read_mesg,kernel_read) Make static
(ifam_read_mesg) make static. fix incorrect variable name.
(rtm_read) make static. Fix call to rib_delete_ipv4 which
should be rib_delete_ipv6.
(routing_socket,kernel_init) should be static. Void argument
should be specified as such, not left incomplete.
* rt_netlink.c: rt.h should be included, contains prototypes of
exported functions.
(kernel_delete_ipv6_old) fix sign of index argument.
* rt_socket.c: Exact same as previous. Also, make various
functions static.
* rtread_getmsg.c: Include zserv.h, which prototypes
route_read. Make static.
* rtread_sysctl.c: zserv.h and rt.h should be included.
fix definition of route_read.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* connected.{c,h}: Include memory.h
(connected_add_ipv4) Use MTYPE for ifc label.
(connected_add_ipv6) Also should accept label. Store it in ifp.
(connected_del_ipv4) Taking label as argument is pointless.
* rt_netlink.c: (netlink_interface_addr) update label usage
for connected_{add,delete} functions.
* if_ioctl.c: (if_getaddrs) NULL label for connected_add_ipv6.
* if_ioctl_solaris.c: (interface_list_ioctl) Pass LIFC_NOXMIT
so we also find out about NOXMIT interfaces like VNI.
Bit of hackery to turn interface names into the primary
interface name, later with routing socket messages we only
will about primary interfaces anyway, so we must normalise
the name.
(if_get_addr) take label as argument, so it can
be passed to connected_add.
If label is provided, then it is interface name to issue the
ioctl for address information on, not the ifp name.
(interface_list) List AF_UNSPEC too, just in case.
* if_proc.c: (ifaddr_proc_ipv6) label for connected_add_ipv6.
* interface.c: (if_addr_wakeup) Some very bogus code - sets
IFF_RUNNING - add comment.
(if_refresh)
(ip_address_install) Use MTYPE for ifc label.
* ioctl_solaris.c: (if_mangle_up) New function. Hackery to make
IFF_UP reflect whether any addresses are left on the
interface, as we get signalled for IFF_UP flags change on the
primary interface only. Logical interfaces dont generate
IFINFO, but we do get an RTM_DELADDR.
(if_get_flags) Call if_mangle_up before return.
* kernel_socket.c: (ifam_read) Fixup calls to
connected_{add,delete} to match above changes. Rename gate
variable to brd, less confusing.
Pass the interface name as a label, if it is not same name
as ifp->name.
|
| |
| |
| |
| |
| |
| | |
* rt_netlink.c: (netlink_request) Use memset to clear structure
before calling sendto (eliminates a valgrind error message about
uninitialized data).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
rib_add_ipv6() function so that IPv6 routes in RIB can have correct
metric. No IPv6 routing daemon uses distance yet though.
* zserv.c, connected.c, kernel_socket.c, rt_netlink.c,
rtread_proc.c,zserv.c: Pass metric and distance info to the
rib_add_ipv6().
Forwardport from stable branch.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* rt_netlink.c (netlink_parse_info): Fix debug messages - nlmsg_pid is
unsigned and one zlog call had swapped arguments.
* rt_netlink.c (netlink_route_multipath): Fix compile with disabled
IPv6 support.
[backport candidate] - with stuff commited to rt_netlink.c before to
fix logging in netlink_route_multipath().
|