Commit graph

349 commits

Author SHA1 Message Date
Ondrej Filip daeb60393d Small bug in ipv4_skip_header. 1999-05-24 17:37:45 +00:00
Ondrej Filip b9f8590025 IP header test added. 1999-05-24 17:29:05 +00:00
Martin Mares 4b0d57e531 Added CONFIG_MULTIPLE_TABLES whereever appropriate. 1999-05-21 14:29:44 +00:00
Martin Mares 1c3c9dceb3 Removed one unused structure field. 1999-05-21 14:29:23 +00:00
Martin Mares a70693ca9b Don't forget to export CPPFLAGS to GCC. :) 1999-05-21 14:28:44 +00:00
Martin Mares a07e9d8235 Added --with-sysinclude to allow explicitly setting where kernel includes
reside, so that you can easily switch between 2.0 and 2.2 ones.

Check existence of <linux/rtnetlink.h> for linux-22 configs to make sure
we're using the correct set of includes.
1999-05-21 14:09:06 +00:00
Martin Mares 4f1a6d27b9 Kill remaining master_table relics in KRT code.
Make all protocols pass routing table to rte_update and rte_discard.
1999-05-17 20:16:53 +00:00
Martin Mares 0e02abfd57 From now we support multiple tables. The master_table variable is
definitely gone. Both rte_update() and rte_discard() have an additional
argument telling which table should they modify.

Also, rte_update() no longer walks the whole protocol list -- each table
has a list of all protocols connected to this table and having the
rt_notify hook set. Each protocol can also freely decide (by calling
proto_add_announce_hook) to connect to any other table, but it will
be probably used only by the table-to-table protocol.

The default debugging dumps now include all routing tables and also
all their connections.
1999-05-17 20:14:52 +00:00
Martin Mares 4107df1d1b Implemented two new symbol handling functions:
o  cf_define_symbol() -- it assigns a meaning to a symbol, bailing
     out if it already has one.
  o  cf_find_symbol() -- finds symbol by name and creates it if not found.

Also modified filter/config.Y to make use of the first function.
1999-05-17 20:06:19 +00:00
Martin Mares b23c5e0ff4 Added ip_skip_header() and modified OSPF to use it. 1999-05-14 18:03:09 +00:00
Ondrej Filip 11ce4490fa *** empty log message *** 1999-05-14 08:50:25 +00:00
Ondrej Filip 67ff91302f Netmask checking for hello packets added. 1999-05-14 08:46:06 +00:00
Ondrej Filip 7426ee3d49 Checksum control added. 1999-05-13 09:18:36 +00:00
Ondrej Filip 296ecb56eb OSPF RX implementation starts.... 1999-05-11 15:34:33 +00:00
Pavel Machek 1b16029c12 Mensi updaty do ripu. Pridana passwd autentikace (netestovano). 1999-05-11 09:53:45 +00:00
Ondrej Filip f7103dfcfe Better logging output. Added 'struct proto *' info 'struct ospf iface'. 1999-05-11 09:50:02 +00:00
Martin Mares 1a54d44a23 Added packet checksumming code. Watch the comments for an explanation. 1999-05-10 21:37:39 +00:00
Martin Mares a2697f02ac Netlink support for secondary interface addresses. 1999-05-07 13:46:16 +00:00
Martin Mares 9a158361da I rewrote the interface handling code, so that it supports multiple
addresses per interface (needed for example for IPv6 support).

Visible changes:

o  struct iface now contains a list of all interface addresses (represented
   by struct ifa), iface->addr points to the primary address (if any).
o  Interface has IF_UP set iff it's up and it has a primary address.
o  IF_UP is now independent on IF_IGNORED (i.e., you need to test IF_IGNORED
   in the protocols; I've added this, but please check).
o  The if_notify_change hook has been simplified (only one interface pointer
   etc.).
o  Introduced a ifa_notify_change hook. (For now, only the Direct protocol
   does use it -- it's wise to just listen to device routes in all other
   protocols.)
o  Removed IF_CHANGE_FLAGS notifier flag (it was meaningless anyway).
o  Updated all the code except netlink (I'll look at it tomorrow) to match
   the new semantics (please look at your code to ensure I did it right).

Things to fix:

o  Netlink.
o  Make krt-iface interpret "eth0:1"-type aliases as secondary addresses.
1999-05-06 21:38:11 +00:00
Martin Mares ec8b579e9c Recognize site scope for IPv4 addresses (prefixes reserved for private
networks).

Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
before conditionals in Modules lists were introduced.
1999-04-27 16:03:17 +00:00
Ondrej Filip 59e2188cb7 Just changes of comments. 1999-04-27 13:04:33 +00:00
Ondrej Filip 6376a96133 Hello timer implemented. 1999-04-27 12:56:52 +00:00
Ondrej Filip 93bde8dce2 Work on hello continues. 1999-04-22 13:12:28 +00:00
Pavel Machek 36bbfc704c Updated filters: they now actually see IP/pxlen of net being filtered,
gateway, and who told us, so they can do usefull jobs from now on.
1999-04-19 18:41:56 +00:00
Pavel Machek afbc41ab3d SImplify code a tiny bit. 1999-04-14 21:11:24 +00:00
Ondrej Filip b11d8a4f59 Redesigned struct ospf_iface & new struct ospf_sock. 1999-04-14 15:13:44 +00:00
Ondrej Filip b31568a516 Small bug fix in memcpy. 1999-04-14 12:47:18 +00:00
Martin Mares 4c5e5e3a1c Multicasts once again: When using SO_BINDTODEVICE, don't specify IP address
of the interface.
1999-04-14 12:29:47 +00:00
Martin Mares 1b50a1e4be Next attempt to get SO_BINDTODEVICE work :) 1999-04-14 11:39:07 +00:00
Martin Mares 36154beb70 Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreq
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.
1999-04-14 11:21:02 +00:00
Martin Mares 9da4d14340 A couple of OSPF fixes:
o  ((flags & IF_CHANGE_UP) == IF_CHANGE_UP)   ->   (flags & IF_CHANGE_UP)
o  bcopy  ->  memcpy   (bcopy is unportable)
o  Ifdeffed out add_tail(&(ifa->sk_list),NODE mcsk) -- the node in socket
   structure is for internal use by the resource manager only. (Now, the
   debugging dump of open sockets looks sane :-)).
1999-04-14 11:09:55 +00:00
Martin Mares 1ab4dee028 Removed redeclaration of `idval', so that it compiles :) 1999-04-14 10:49:31 +00:00
Ondrej Filip 4c630a6dd7 Added wait timer for eligible BCAST & NBMA interface. 1999-04-13 21:46:20 +00:00
Ondrej Filip 55e7732a5a Change in ospf_iface. (My bad understanding of lists manipulation.) 1999-04-13 19:27:44 +00:00
Ondrej Filip aec76c6e8e IPv6 changes. 1999-04-13 18:21:53 +00:00
Pavel Machek 43fc099b98 Sets of IP addresses should work, now. (From now on it is also
possible to write if 1.2.3.4 < 1.2.3.5, but I'm not sure if it is good
for anything.)
1999-04-13 11:40:04 +00:00
Ondrej Filip 24eaae9e5d Small change to stop using loopback. 1999-04-13 00:46:34 +00:00
Ondrej Filip cb2e8c4970 A small init change to avoid core dump. 1999-04-13 00:24:05 +00:00
Ondrej Filip 5b1a92e6d4 Not all I mean serious. Almost everything will change.
Changes: struct ospf_iface draft, various constants added...
1999-04-12 23:54:21 +00:00
Martin Mares 2f5d154466 Added ipa_compare as requested. 1999-04-12 20:26:06 +00:00
Pavel Machek 38506f71b0 Sets of integers now actually work. Sets of IP will work as soon as
compare function is ready.
1999-04-12 19:58:18 +00:00
Martin Mares 01bd7759b2 Ignore alias interfaces (some day, we will treat them as pure secondary
interface addresses).
1999-04-12 18:07:05 +00:00
Martin Mares 08e2d6259a Removed TOS support. This simplifies many things a lot. 1999-04-12 18:01:07 +00:00
Martin Mares 170c984a9e Cosmetic message fix. 1999-04-12 17:27:21 +00:00
Martin Mares 113694892e Use $(CC) instead of gcc even when generating dependencies. 1999-04-12 17:21:11 +00:00
Martin Mares 620c4f90c9 Oops, a typo in previous struct ip_mreqn changes... 1999-04-12 17:20:50 +00:00
Martin Mares 61fb537c62 Use struct ip_mreqn' instead of struct ip_mreq' for multicast
operations on 2.1/2.2 kernels. This allows passing of real interface
indexes instead of referencing interfaces by their IP addresses which
fails badly in presence of unnumbered interfaces.

Unfortunately, this structure is not visible with glibc 2.0 as it provides
its own networking headers :-(  Both libc5 and glibc 2.1 should be OK.
1999-04-12 15:27:56 +00:00
Martin Mares 5a99ade413 Fixed a couple of bugs in handling of multicast sockets.
See comments in lib/socket.h for a detailed guide on how to use them.
1999-04-12 14:57:46 +00:00
Pavel Machek bad631e048 Oops, typo. 1999-04-12 12:07:15 +00:00
Pavel Machek 8ba2cc064b In case no startup function is defined, don't try to launch it. 1999-04-12 12:01:59 +00:00