gateway: store current gateway(s) in a struct

This simplifies the administration of the currently
active gateways.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: lazily allocate the current gateway structs

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: add path_cost to 'set gateway' interface

We need it when we are going to keep the active gateway(s) in a list

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: add interface to get the gateway costs

We need it when we are going to keep the active gateway(s) in a list

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: simplify by using the new costs interface

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: add gateway_list.{c,h}

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: keep track of the active gateways in a list

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
pud: change java include path to generic java include path

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Merge branch 'release-0.6.5'

* release-0.6.5:
  pud: change java include path to generic java include path
pud: java make target is dependent on library make target

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
pud: java make target is dependent on library make target

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Merge branch 'release-0.6.5'

* release-0.6.5:
  pud: java make target is dependent on library make target
doc: clean up the latex directory if empty

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Merge branch 'release-0.6.5'

* release-0.6.5:
  doc: clean up the latex directory if empty
json_info: only output smart gateway info on Linux

Since it's only available on Linux

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
kernel_route: olsr_os_inetgw_tunnel_route can now take the table

as an optional parameter.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: let the gateway code determine the tunnel name

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: remove the worst gateway before adding new one

when the gateway list is full, so that we never overrun
the list.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: add SmartGatewayUseCount configuration parameter

We can now configure multiple 'active' gateways (although we only
allow 1 for now until the functionality is complete).

Multiple active gateways are used to reduce breaking connections
in a dynamic network.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>
gateway: use SmartGatewayUseCount setting the the gateway lists

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Reviewed-by: Henning Rogge <hrogge@googlemail.com>