Tobias Brunner
d6c17e96b2
kernel-pfroute: Implement get_source_addr()
2013-06-21 17:03:21 +02:00
Tobias Brunner
f58f8bf409
kernel-pfroute: Properly install routes with interface and gateway
2013-06-21 17:03:21 +02:00
Tobias Brunner
93e4df3761
kernel-pfroute: Activate TUN device before setting address
...
On FreeBSD, for some reason, we don't learn the interface is up
otherwise. Even though ifconfig lists it as up at the same time.
2013-06-21 17:03:21 +02:00
Tobias Brunner
554c4276a5
kernel-pfroute: Raise tun event when creating/destroying TUN devices for virtual IPs
2013-06-21 17:03:21 +02:00
Martin Willi
c9a323c1d9
kernel-pfroute: allow only one thread to do a route look up simultaneously
...
Otherwise we mess up the sequence number another thread is waiting for.
2013-05-06 17:01:13 +02:00
Martin Willi
580b768d03
kernel-pfroute: add a feature flag requesting "exclude" routes
...
If routes installed along with policies covering the peer address affect local
IKE/ESP packets, they won't get routed correctly. To work around this issue,
the kernel interface can install "exclude" routes for the IKE peer. Not all
networking backends require this workaround, hence we export a flag for it
if it is required.
2013-05-06 17:01:13 +02:00
Martin Willi
bd520193a4
kernel-pfroute: remove unused interface address refcounting
2013-05-06 17:01:13 +02:00
Martin Willi
77b6f19694
kernel-pfroute: mark IPs installed on tun device as virtual
2013-05-06 17:00:55 +02:00
Martin Willi
2a2d7a4dc8
kernel-pfroute: install virtual IPs using dedicated tun devices
2013-05-06 16:10:13 +02:00
Martin Willi
1a2a8bffed
kernel-interface: support enumeration of virtual-only IPs
2013-05-06 16:10:13 +02:00
Martin Willi
121783035c
kernel-pfroute: split /0 routes to avoid conflict with default route
2013-05-06 16:10:13 +02:00
Martin Willi
6e879a59fc
kernel-pfroute: rescan address list for an interface if its state changes
...
It seems that we don't get address notifications if the interface is down
on OS X.
2013-05-06 16:10:13 +02:00
Martin Willi
0fd409db77
kernel-pfroute: add newly appearing interfaces to the interface cache
2013-05-06 16:10:12 +02:00
Martin Willi
9bc342eae4
kernel-pfroute: implement get_nexthop()
2013-05-06 16:10:12 +02:00
Martin Willi
272bcac894
kernel-pfroute: install and uninstall routes
2013-05-06 16:10:12 +02:00
Martin Willi
3a7f4b5c8d
kernel-pfroute: collect replies received for our own queries
2013-05-06 16:10:12 +02:00
Martin Willi
b1c6b68e4c
kernel-pfroute: refactor PF_ROUTE message processing, use an enumerator
2013-05-06 16:10:12 +02:00
Martin Willi
9650bf3cc7
kernel-pfroute: use INIT() macro for allocations
2013-05-06 16:10:12 +02:00
Martin Willi
0e107f03ac
kernel-pfroute: use only a single PF_ROUTE socket for both events and queries
2013-05-06 16:10:12 +02:00
Martin Willi
e8002956c9
kernel-pfroute: fix length check when receiving PF_ROUTE messages
2013-05-06 16:10:12 +02:00
Martin Willi
d88597f0dd
Don't wait while removing external IPs used for load testing
2012-11-29 10:22:51 +01:00
Martin Willi
b185cdd16d
Install virtual IPs via interface name, and use an interface lookup where required
2012-11-29 10:22:51 +01:00
Martin Willi
50bd755871
Add an optional kernel-interface parameter to install IPs with a custom prefix
2012-11-29 10:22:51 +01:00
Tobias Brunner
f05b427265
Moved debug.[ch] to utils folder
2012-10-24 16:00:51 +02:00
Tobias Brunner
12642a6831
Moved data structures to new collections subfolder
2012-10-24 16:00:49 +02:00
Tobias Brunner
2e7cc07ecd
Moved host_t and host_resolver_t to a new networking subfolder
2012-10-24 15:06:18 +02:00
Tobias Brunner
eecd41e349
Use a helper function to add milliseconds to timeval structs
2012-10-18 12:25:59 +02:00
Tobias Brunner
9845391a95
Properly initialize cached address map in kernel-pfroute plugin
2012-09-27 12:43:36 +02:00
Tobias Brunner
bfd2cc1cd7
Fixed compilation of kernel-pfroute plugin
2012-09-27 09:23:58 +02:00
Tobias Brunner
bdf36dac71
Use an rwlock in kernel-pfroute too
2012-09-21 18:16:27 +02:00
Tobias Brunner
4106aea8e4
Made IP address enumeration more flexible
...
Also added an option to enumerate addresses on ignored interfaces.
2012-09-21 18:16:26 +02:00
Tobias Brunner
1f97e1aaca
Use a hashtable to quickly check for usable IP addresses/interfaces
2012-09-21 18:16:26 +02:00
Tobias Brunner
940e1b0f66
Filter ignored interfaces in kernel interfaces (for events, address enumeration, etc.)
2012-09-21 18:16:26 +02:00
Tobias Brunner
645d7a5ef3
%any is never on a local interface
2012-09-21 18:16:26 +02:00
Tobias Brunner
9ba36c0f7f
Make it easy to check if an address is locally usable via changed get_interface() method
2012-09-21 18:16:26 +02:00
Tobias Brunner
aed33805ce
Don't ignore loopback devices and allow addresses on them being enumerated
2012-09-21 18:16:26 +02:00
Tobias Brunner
dad6d904ee
Use source address in get_nexthop() call
...
Otherwise the nexthop returned might belong to a different route than
the one actually used with the current source address.
2012-09-21 18:16:25 +02:00
Tobias Brunner
31a0e24b0f
Increased log level when listing interfaces and IP addresses during startup
...
This avoids confusing log messages in starter and ipsec statusall
already lists the available addresses anyway.
2012-08-16 16:14:15 +02:00
Tobias Brunner
26d77eb3e6
Centralized thread cancellation in processor_t
...
This ensures that no threads are active when plugins and the rest of the
daemon are unloaded.
callback_job_t was simplified a lot in the process as its main
functionality is now contained in processor_t. The parent-child
relationships were abandoned as these were only needed to simplify job
cancellation.
2012-06-25 17:38:59 +02:00
Tobias Brunner
05ca56558c
Disabled listening for kernel events in starter.
2012-06-08 14:12:06 +02:00
Martin Willi
14bf2f689d
Use CRITICAL job priority class for long running dispatcher jobs
2011-05-16 15:24:15 +02:00
Tobias Brunner
cce8f65232
Fixed two typos in kernel-pfroute plugin.
2011-04-26 17:58:39 +02:00
Martin Willi
e131f11779
Migrated kernel_pfroute_net to INIT/METHOD macros
2011-02-17 09:39:25 +00:00
Tobias Brunner
bb381e26c6
Refer to scheduler and processor via lib and not hydra.
2010-09-02 19:04:18 +02:00
Tobias Brunner
062a602216
Moved all kernel plugins to libhydra.
2010-09-02 19:01:26 +02:00