Ondrej Zajicek
88a183c6c9
Integrated IP functions.
2014-10-24 11:11:43 +02:00
Ondrej Zajicek
05476c4d04
IPv4/IPv6 integrated socket code.
2014-05-18 11:42:26 +02:00
Ondrej Zajicek
48e5f32db6
Many changes in I/O and OSPF sockets and packet handling.
...
I/O:
- BSD: specify src addr on IP sockets by IP_HDRINCL
- BSD: specify src addr on UDP sockets by IP_SENDSRCADDR
- Linux: specify src addr on IP/UDP sockets by IP_PKTINFO
- IPv6: specify src addr on IP/UDP sockets by IPV6_PKTINFO
- Alternative SKF_BIND flag for binding to IP address
- Allows IP/UDP sockets without tx_hook, on these
sockets a packet is discarded when TX queue is full
- Use consistently SOL_ for socket layer values.
OSPF:
- Packet src addr is always explicitly set
- Support for secondary addresses in BSD
- Dynamic RX/TX buffers
- Fixes some minor buffer overruns
- Interface option 'tx length'
- Names for vlink pseudoifaces (vlinkX)
- Vlinks use separate socket for TX
- Vlinks do not use fixed associated iface
- Fixes TTL for direct unicast packets
- Fixes DONTROUTE for OSPF sockets
- Use ifa->ifname instead of ifa->iface->name
2014-02-06 17:46:01 +01:00
Ondrej Zajicek
736e143fa5
Merge branch 'master' into add-path
...
Conflicts:
filter/filter.c
nest/proto.c
nest/rt-table.c
proto/bgp/bgp.h
proto/bgp/config.Y
2013-11-23 11:50:34 +01:00
Ondrej Zajicek
6a8d3f1c1f
BFD work in progress.
...
Now it compiles and mostly works.
2013-09-16 23:57:40 +02:00
Ondrej Zajicek
70e212f913
Implements TTL security for OSPF and RIP.
...
Interfaces for OSPF and RIP could be configured to use (and request)
TTL 255 for traffic to direct neighbors.
Thanks to Simon Dickhoven for the original patch for RIPng.
2013-06-25 15:39:44 +02:00
Ondrej Zajicek
ef4a50be10
Better packet priority and traffic class handling.
...
Implements support for IPv6 traffic class, sets higher priority for OSPF
and RIP outgoing packets by default and allows to configure ToS/DS/TClass
IP header field and the local priority of outgoing packets.
2013-06-24 16:37:30 +02:00
Ondrej Filip
a9fc659b84
Small typos fixed.
2013-02-26 14:29:53 +01:00
Ondrej Filip
de41dcd13d
Redundant lines removed.
2013-02-26 14:13:11 +01:00
Ondrej Filip
a9c38203bd
Allow 1 sec RIP update.
2013-02-24 00:43:08 +01:00
Ondrej Filip
04ddefb357
Use BIRD's ASSERT instead of assert.h
2013-02-22 07:15:27 +01:00
Ondrej Filip
2bf59bf4d3
Hotfix to solve an issue with delaying timers reported by Aleksey Chudov.
2013-02-21 00:44:59 +01:00
Ondrej Zajicek
094d2bdb79
Implements ADD-PATH extension for BGP.
...
Allows to send and receive multiple routes for one network by one BGP
session. Also contains necessary core changes to support this (routing
tables accepting several routes for one network from one protocol).
It needs some more cleanup before merging to the master branch.
2012-08-14 16:46:43 +02:00
Ondrej Zajicek
47c447c42e
Minor cleanups.
2012-05-11 12:10:21 +02:00
Ondrej Zajicek
e2bf812f3d
Fixes RIPng compatibility.
...
Also probably breaks compatibility with older BIRDs, but RIPng not
really worked here.
Thanks to Goesta Smekal for the original patch.
2012-03-15 12:38:08 +01:00
Ondrej Zajicek
f761503760
Fixes RIPng socket and neighbor handling.
...
RIPng did not really work because of link-local addresses.
Thanks to Roman Hoog Antink for some notes.
2012-03-15 12:23:49 +01:00
Ondrej Zajicek
39c028e9e9
Assign default protocol preference via proto_config_new().
...
The patch from Alexander V. Chernikov.
2012-01-24 11:31:00 +01:00
Ondrej Zajicek
a7f23f581f
Implements protocol templates.
...
Based on the patch from Alexander V. Chernikov.
Extended to support almost all protocols.
Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-11-07 00:31:23 +01:00
Ondrej Zajicek
14a8f396e1
Fixes sockets for IPv4 RIP.
...
Thanks Roman Hoog Antink for a suggestion.
2011-10-26 14:10:49 +02:00
Ondrej Zajicek
52a43ae3b7
Minor changes in addresses.
...
Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
show broadcast addr in show interfaces. Nobody cares for that.
2011-03-28 22:46:18 +02:00
Ondrej Zajicek
948c865fac
Fixes a crash in RIP during reconfigure.
2010-09-03 17:15:02 +02:00
Ondrej Zajicek
3cb6c83f1a
Fixes a memory leak in RIP.
2010-09-03 16:32:00 +02:00
Ondrej Zajicek
0aad2b9292
Temporary OSPF commit - sockets.
2010-03-14 16:36:59 +01:00
Ondrej Zajicek
e81b440f68
Fix configure to enable warnings and fix most of them.
2010-02-21 14:34:53 +01:00
Ondrej Zajicek
dca75fd7c2
Removes phantom protocol from the pipe design.
...
It seems that by adding one pipe-specific exception to route
announcement code and by adding one argument to rt_notify() callback i
could completely eliminate the need for the phantom protocol instance
and therefore make the code more straightforward. It will also fix some
minor bugs (like ignoring debug flag changes from the command line).
2010-02-13 12:26:26 +01:00
Ondrej Zajicek
f9c799a00e
Temporary OSPFv3 development commit (changing multicast support).
2009-09-04 11:06:51 +02:00
Ondrej Zajicek
f98e291579
The pipe cleanup.
2009-06-01 14:07:13 +02:00
Ondrej Zajicek
23ac9e9a9e
Changes pipes to transfer all routes between routing table, not just optimal routes.
2009-05-31 15:24:27 +02:00
Ondrej Zajicek
20e94fb85b
A change in OSPF and RIP interface patterns.
...
Allows to add more interface patterns to one common 'options'
section like:
interface "eth3", "eth4" { options common to eth3 and eth4 };
Also removes undocumented and unnecessary ability to specify
more interface patterns with different 'options' sections:
interface "eth3" { options ... }, "eth4" { options ... };
2009-05-06 22:02:45 +02:00
Ondrej Zajicek
aebe06b40c
Proper format functions for ORIGINATOR_ID, CLUSTER_LIST
2008-11-08 23:33:22 +01:00
Ondrej Filip
004cf4fc0c
Minor bugfix to compile bird in IPv6.
2004-07-15 17:28:13 +00:00
Ondrej Filip
16c2d48d8f
Bugfix - RIP now updates routes with worse metric.
2004-07-13 20:53:56 +00:00
Ondrej Filip
5236fb03af
Password management redesigned (untested).
2004-06-26 20:11:14 +00:00
Ondrej Filip
5ed68e46d7
Small typo changes.
2004-06-23 23:59:48 +00:00
Ondrej Filip
973cf09c3b
Hotfix to problem with metric change reported by Luca.
2004-06-23 21:36:55 +00:00
Ondrej Filip
3fe5f89907
P->magic used just in LOCAL_DEBUG mode
2004-06-23 21:34:26 +00:00
Martin Mares
c91fc9b606
... and in rip (there are even unused functions!).
2004-06-05 09:27:49 +00:00
Martin Mares
6a57bb3110
Killed a couple of unused variables.
...
We really should compile with warnings enabled.
2004-05-31 20:57:38 +00:00
Martin Mares
4a02013767
Make RIP nolisten mode actually work. The socket is required for
...
sending, the received data has to be discarded instead.
(patch by Andreas Steinmetz modified by me)
2004-05-31 17:42:38 +00:00
Martin Mares
502ded5215
Fix reporting of RIP socket errors. Thanks to Eric Leblond for the patch.
2003-12-06 16:41:11 +00:00
Martin Mares
53a50af504
Applied Pavel's fix for broadcast/multicast mode.
2002-03-10 12:32:12 +00:00
Pavel Machek
ad3907559c
RIP bugfix
2000-06-21 19:40:46 +00:00
Pavel Machek
07f29765a5
RIPv6 now works.
2000-06-07 14:06:37 +00:00
Pavel Machek
18b4d6bf27
rip ipv6 bugfix
2000-06-07 13:58:49 +00:00
Martin Mares
58f7d004fd
Fixes to the progdoc.
2000-06-07 13:25:53 +00:00
Martin Mares
2e9b24211a
Spelling fixes to progdoc.
2000-06-07 12:29:08 +00:00
Pavel Machek
4c5f93d76b
Better documentation. There are functions whose description is good when
...
reading source but whose documentation does not belong to progdocs.
2000-06-05 17:13:36 +00:00
Pavel Machek
8b79c4ccd5
Add safety check.
2000-06-05 15:41:44 +00:00
Pavel Machek
b093c328f5
Updates to both programmers and users doc
2000-06-05 12:52:57 +00:00
Martin Mares
e24ddd9bef
Don't set precedence and TTL for the dummy socket.
2000-06-04 20:00:35 +00:00
Martin Mares
201187c558
debug -> DBG
2000-06-04 19:55:11 +00:00
Martin Mares
491cd43b77
Updated RIP to new neighbor cache semantics. When presented with next hop
...
equal to a local address, just ignore the route (as it is usually just an
external route exported by us echoed by some RIP peer), when given an
invalid next hop, moan to the log.
2000-06-01 12:59:50 +00:00
Martin Mares
3b0b2cb61f
IPv6: Absolutize link-scope addresses of incoming packets.
...
IPv6 socket interface is hopefully right now.
2000-05-30 22:48:14 +00:00
Martin Mares
2cec475b8f
Removed several unused local variables.
2000-05-30 21:24:53 +00:00
Martin Mares
dc6405d27e
Latest changes by Pavel have removed the error messages printed after
...
unsuccessful socket open, but replaced them by segmentatio fault!
Grrrrrrrrr.
2000-05-19 17:21:42 +00:00
Pavel Machek
9511a483b1
Less error messages in case sk_open fails.
2000-05-19 16:44:25 +00:00
Pavel Machek
eb4097e4e4
Added name of protocol to messages being logged.
2000-05-19 16:22:53 +00:00
Martin Mares
f7ad556f20
Commented out the `inserting entry which is already there' message since
...
it's pretty normal: during feeding of the protocol, a new route can appear
which will be announced normally and then repeated by the feeding process.
2000-05-19 11:00:47 +00:00
Pavel Machek
6d5e703dc9
Minor cleaning
2000-05-17 20:23:05 +00:00
Martin Mares
e5a47266d0
Turned off LOCAL_DEBUG.
2000-05-16 15:08:52 +00:00
Pavel Machek
5b846de6a6
Interface dummy is too strange for me... but psst, that's secret.
2000-05-16 15:05:05 +00:00
Pavel Machek
898fdd85dc
Rip should now reconfigure itself only if needed.
2000-05-16 14:58:06 +00:00
Martin Mares
28323d9ddb
Several minor RIP changes (Pavel, please check as usually):
...
o Use FIB_ITERATE_INIT instead of calling the function fit_init()
which is explictly marked as private in route.h.
o When printing trace messages, don't spit out protocol name twice.
o Some messages are a bit more verbose.
o Added a bunch of FIXME's.
o When running in broadcast mode, don't forget to bind the local
end of the socket to the same broadcast address, so that we don't
get the broadcasts looped back via different interface. I'm just
going to look up the same problem for multicasts.
2000-05-11 15:05:13 +00:00
Pavel Machek
ec21aecfdd
Fixed nasty segfault in rip.
2000-05-11 10:33:18 +00:00
Pavel Machek
10f5c47d2e
Some more paranoia into rip_insert and rip_delete
2000-05-11 09:41:16 +00:00
Pavel Machek
94d1a6c9dc
Unused variable killed.
2000-05-11 09:36:55 +00:00
Pavel Machek
2a41c8d9fc
use password_same utility function
2000-05-10 13:42:50 +00:00
Pavel Machek
3e47419274
Inlined metric and mode into struct rip_interface to make reconfig
...
work.
reconfigure is conservative but should work.
2000-05-10 13:23:21 +00:00
Pavel Machek
30aa02d70d
rip_reconfigure done right
2000-05-10 13:05:39 +00:00
Pavel Machek
b8524e9be4
ipa_same does not exist.
2000-05-10 12:48:06 +00:00
Pavel Machek
0bff946c0a
Nicer messages from rip.
2000-05-10 12:46:47 +00:00
Pavel Machek
6f3849774f
Use ea_get_int instead of ea_find.
2000-05-10 12:38:05 +00:00
Pavel Machek
7f5f44bb92
Reconfigure hook copied from bgp.
2000-05-10 12:32:45 +00:00
Pavel Machek
84a1305437
Send first udpate sooner.
2000-05-10 12:26:09 +00:00
Pavel Machek
14758d87c4
Only announce change to main routing table if it is better than current.
2000-05-10 12:23:06 +00:00
Pavel Machek
5e50f0a028
Don't touch used memory.
2000-05-10 11:57:56 +00:00
Pavel Machek
be3b6dc574
Killed unused variable.
2000-05-10 11:48:34 +00:00
Pavel Machek
4bfe4e8551
Fix segfaults by using new ea_get_int.
2000-05-10 06:56:42 +00:00
Martin Mares
92ef4fa719
Preference is a configurable parameter.
2000-05-08 10:38:25 +00:00
Martin Mares
ce1da96ee7
Added commands show route protocol <p>' and
show route import <p>' which
...
show the routing table as exported to the protocol given resp. as returned
from its import control hook.
To get handling of filtered extended attributes right (even in the old
`show route where <filter>' command), the get_route_info hook gets an
attribute list and all protocol specific rte attributes are contained
there as temporary ones. Updated RIP to do that.
Added ea_append() which joins two ea_list's.
2000-05-06 22:57:39 +00:00
Martin Mares
9a220cabbc
#ifdef out lots of debugging information.
...
The long resource/routing table dump printed upon startup is gone now
and if you wish to see it, just send bird SIGUSR1 or use the `debug'
commands.
2000-05-04 20:52:28 +00:00
Pavel Machek
9b63e3a58a
Spelling fixes.
2000-05-04 20:08:34 +00:00
Martin Mares
53943a0022
Defined format specifier %M' which behaves as
%m', but takes the
...
error code as an argument.
Use it in socket hooks where we really shouldn't rely on errno containing
the right value or even existing.
2000-05-02 16:10:04 +00:00
Pavel Machek
2337ade754
Moved documentation to top of file, where it belongs.
2000-04-30 18:47:48 +00:00
Pavel Machek
9c1a55deee
IpV6 now actually compiles.
...
Mj, could you provide example of static config for ipv6 that is _not_
rejected by checks? I tried this and got rejected.
route 62:168::/32 via 62:169::;
route 1:2::/32 via 1:3::;
2000-04-29 15:45:30 +00:00
Pavel Machek
decc99fbbd
Killed fixme: I already fixed it.
2000-04-28 10:15:57 +00:00
Pavel Machek
a769a180d7
Provide rip_get_attr, how do I test it?
2000-04-28 10:14:59 +00:00
Pavel Machek
6c0a7174af
Add sample documentation to rip.
2000-04-28 09:55:52 +00:00
Pavel Machek
c010f4cb37
Use right address for ripv6.
2000-04-26 11:33:03 +00:00
Pavel Machek
7f704c06d8
Cleanup in preparation for ipv6.
2000-04-26 11:07:57 +00:00
Pavel Machek
3d0ea3a7c3
Fix of comment.
2000-04-07 09:02:17 +00:00
Martin Mares
dad177d7e0
RIP: Set attribute class.
2000-04-01 10:20:12 +00:00
Martin Mares
ac4b4683ae
Removal of useless includes continues...
2000-03-31 23:40:00 +00:00
Martin Mares
a37410cbdd
Use bsprintf() instead of sprintf().
2000-03-31 23:33:03 +00:00
Martin Mares
221135d6bf
Include "lib/string.h" instead of <string.h>. It should give us bzero()
...
and other non-portable functions on all systems.
2000-03-31 23:30:21 +00:00
Pavel Machek
8d2e3eba92
Cross-protocol issues solved better
2000-03-29 08:58:06 +00:00
Pavel Machek
d0031c5ee9
Use neigh_connected_to in rip, and behave more correctly
...
w.r.t. whotoldme and nexthop.
2000-03-27 12:21:11 +00:00
Pavel Machek
6480dd0880
I broke compilation. Sorry.
2000-03-26 21:31:57 +00:00
Pavel Machek
8c86f96fa6
Split horizont done right.
...
Locks done better.
2000-03-26 18:01:27 +00:00
Pavel Machek
772f489932
Minor change to make code more readable.
2000-03-23 12:08:40 +00:00