Skip to content

Binding to an interface which is not up yet causes many log entries #84

@pmelange

Description

@pmelange

I am using the tunneldigger client in openWrt (freifunk-berlin firmware). We expect situations where people install the firmware while meshing islands through a tunnel. It is therefore important that tunnels are not made over the mesh network and only though the wan interface. Thus we want to bind to the interface.

An issue arrises when router is not connected to a wan and only meshes. The wan is not connected to anything, yet tunneldigger tries to make a connection anyhow. There were 80 log entries in 10 seconds, which repeat five seconds later.

Mon Oct 22 01:04:52 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:52 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:52 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:52 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:52 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:52 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:52 2018 daemon.info td-client: Performing broker selection...
Mon Oct 22 01:04:53 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:53 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:53 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:53 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:53 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:53 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:53 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:53 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:53 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:53 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:53 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:53 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:53 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:53 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:53 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:53 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:53 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:53 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:56 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:56 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:56 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:56 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:56 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:56 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:56 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:56 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:56 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:56 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:56 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:56 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:56 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:56 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:56 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:56 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:56 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:56 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:58 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:58 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:58 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:58 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:58 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:58 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:58 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:58 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:58 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:58 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:58 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:58 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:58 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:58 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:58 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:04:59 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:04:59 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:04:59 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:01 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:05:01 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:05:01 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:01 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:05:01 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:05:01 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:01 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:05:01 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:05:01 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:01 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:05:01 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:05:01 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:01 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:05:01 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:05:01 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:02 2018 daemon.info td-client: Reinitializing tunnel context.
Mon Oct 22 01:05:02 2018 daemon.err td-client: Failed to bind to device!
Mon Oct 22 01:05:02 2018 daemon.err td-client: Unable to reinitialize the context!
Mon Oct 22 01:05:02 2018 daemon.err td-client: No suitable brokers found. Retrying in 5 seconds

I see two possible solutions.

  1. Change l2tp_client.c at line 434 to wait for a timeout when the bind fails and try again. And without it being an error.
  2. Change the init to only start those which do not bind. Create a hotplug script to handle those which do bind.

I am willing to make the changes, but I want to know what the development group thinks before I go making changes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions