summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
1999-05-11Mensi updaty do ripu. Pridana passwd autentikace (netestovano).Pavel Machek
1999-05-11Better logging output. Added 'struct proto *' info 'struct ospf iface'.Ondrej Filip
1999-05-10Added packet checksumming code. Watch the comments for an explanation.Martin Mares
1999-05-07Netlink support for secondary interface addresses.Martin Mares
1999-05-06I rewrote the interface handling code, so that it supports multipleMartin Mares
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-04-27Recognize site scope for IPv4 addresses (prefixes reserved for privateMartin Mares
networks). Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes before conditionals in Modules lists were introduced.
1999-04-27Just changes of comments.Ondrej Filip
1999-04-27Hello timer implemented.Ondrej Filip
1999-04-22Work on hello continues.Ondrej Filip
1999-04-19Updated filters: they now actually see IP/pxlen of net being filtered,Pavel Machek
gateway, and who told us, so they can do usefull jobs from now on.
1999-04-14SImplify code a tiny bit.Pavel Machek
1999-04-14Redesigned struct ospf_iface & new struct ospf_sock.Ondrej Filip
1999-04-14Small bug fix in memcpy.Ondrej Filip
1999-04-14Multicasts once again: When using SO_BINDTODEVICE, don't specify IP addressMartin Mares
of the interface.
1999-04-14Next attempt to get SO_BINDTODEVICE work :)Martin Mares
1999-04-14Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreqMartin Mares
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.
1999-04-14A couple of OSPF fixes:Martin Mares
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-14Removed redeclaration of `idval', so that it compiles :)Martin Mares
1999-04-13Added wait timer for eligible BCAST & NBMA interface.Ondrej Filip
1999-04-13Change in ospf_iface. (My bad understanding of lists manipulation.)Ondrej Filip
1999-04-13IPv6 changes.Ondrej Filip
1999-04-13Sets of IP addresses should work, now. (From now on it is alsoPavel Machek
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-13Small change to stop using loopback.Ondrej Filip
1999-04-13A small init change to avoid core dump.Ondrej Filip
1999-04-12Not all I mean serious. Almost everything will change.Ondrej Filip
Changes: struct ospf_iface draft, various constants added...
1999-04-12Added ipa_compare as requested.Martin Mares
1999-04-12Sets of integers now actually work. Sets of IP will work as soon asPavel Machek
compare function is ready.
1999-04-12Ignore alias interfaces (some day, we will treat them as pure secondaryMartin Mares
interface addresses).
1999-04-12Removed TOS support. This simplifies many things a lot.Martin Mares
1999-04-12Cosmetic message fix.Martin Mares
1999-04-12Use $(CC) instead of gcc even when generating dependencies.Martin Mares
1999-04-12Oops, a typo in previous struct ip_mreqn changes...Martin Mares
1999-04-12Use `struct ip_mreqn' instead of `struct ip_mreq' for multicastMartin Mares
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-12Fixed a couple of bugs in handling of multicast sockets.Martin Mares
See comments in lib/socket.h for a detailed guide on how to use them.
1999-04-12Oops, typo.Pavel Machek
1999-04-12In case no startup function is defined, don't try to launch it.Pavel Machek
1999-04-11Added new target "tags" to generate a tag table for Emacs.Martin Mares
Also made "depend" work before the tree is compiled first time.
1999-04-10Decrease number of warnings.Pavel Machek
1999-04-07Portability fixes.Martin Mares
1999-04-07Filters upgraded - a bit. Moved code to filter.c because it is wherePavel Machek
it belongs. (f-util.c stays there for auxiliary and non-important things.)
1999-04-06ip_pton: Avoid modification of the string we're converting.Martin Mares
1999-04-05Routing table core changes to support full route filtering:Martin Mares
o Introduced rte_cow() which should be used for copying on write the rte's in filters. Each rte now carries a flag saying whether it's a real route (possessing table linkage and other insignia) or a local copy. This function can be expected to be fast since its fast-path is inlined. o Introduced rte_update_pool which is a linear memory pool used for all temporary data during rte_update. You should not reference it directly -- instead use a pool pointer passed to all related functions. o Split rte_update to three functions: rte_update The front end: handles all checking, inbound filtering and calls rte_recalculate() for the final version of the route. rte_recalculate Update the table according to already filtered route. rte_announce Announce routing table changes to all protocols, passing them through export filters and so on. The interface has _not_ changed -- still call rte_update() and it will do the rest for you automagically. o Use new filtering semantics to be explained in a separate mail.
1999-04-05Added some new protocol hooks (look at the comments for better explanation):Martin Mares
make_tmp_attrs Convert inline attributes to ea_list store_tmp_attrs Convert ea_list to inline attributes import_control Pre-import decisions
1999-04-05Changed syntax of attaching filters to protocols to hopefully the finalMartin Mares
version: EXPORT <filter-spec> for outbound routes (i.e., those announced by BIRD to the rest of the world). IMPORT <filter-spec> for inbound routes (i.e., those imported by BIRD from the rest of the world). where <filter-spec> is one of: ALL pass all routes NONE drop all routes FILTER <name> use named filter FILTER { <filter> } use explicitly defined filter For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes the kernel protocol, so that you need to add EXPORT ALL to get the previous configuration of kernel syncer (as usually, see doc/bird.conf.example for a bird.conf example :)).
1999-04-05Several filter changes. (Pavel, please check if they are OK.)Martin Mares
o Changed parameters of f_run. Changed rtein+rteout pair to rte pointer passed by reference, added ea_list of temporary attrs again passed by reference and finally added a pointer to memory pool for storing temporary data (new ea_lists's, temporary rta's etc.). o Re-ordered result codes, so that all accepts come before all rejects. o Introduced FILTER_ACCEPT and FILTER_REJECT dummy values (will be used in protocol configurations). o Added filter_name() which returns name of a filter or ACCEPT/REJECT for the dummies.
1999-04-05Use a more reasonable pool chunk size: 4080 bytes seem to be a goodMartin Mares
approximation of a integral fraction of page size even if both malloc overhead and chunk header space is counted.
1999-04-03More changes to the kernel syncer.Martin Mares
o Now compatible with filtering. o Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS systems (on the others it's impossible to get it semantically correct). o Learning now stores all of its routes in a separate fib and selects the ones the kernel really uses for forwarding packets. o Better treatment of CONFIG_AUTO_ROUTES ports. o Lots of internal changes.
1999-04-03Added new protocol hook for dumping of protocol-dependent routeMartin Mares
attributes. Please implement in all protocols.
1999-04-03Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is ableMartin Mares
to distinguish between our own routes and alien ones.
1999-04-02Fixed `too many interfaces' cases.Martin Mares