Skip to content

LOOP interface is set to node 0 regardless of yaml file or routing argument #4

Description

@PietroAngeli

Whatever setting in a yaml file or routing argument, the loop interface is always set to 0.
If a remote node with node address 0 sends packets, they get therefore dropped (see /lib/csp/CHANGELOG line 101).
The loop interface should be on the local node, not 0.

Activity

  1. johandc commented on Mar 18, 2023

    @johandc
    Contributor

    The issue is really with the node, which have address zero. This address has been reserved for a long time, and it was time to put it into use, when adding the loopback interface. I acknowledge that we still see some older nodes starting up with node 0 as a legacy thing. Therefore we manually compile csh without the loopback interface sometimes, to get a CSH capable of talking to an external address on node 0. But this should become increasingly rare, as products stop using address zero as default.

  2. PietroAngeli commented on Mar 29, 2023

    @PietroAngeli
    Author

    The point is that setting the LOOP to node 0 is wrong, regardless of legacy compatibility:
    Run an instance of CSH with node X and do:
    ident X --> no reply, as there is not a specific rule for routing packets destined to node X on the LOOP interface
    ident 0 --> the machine running the instance idents itself
    the node of the loop interface should be the same set for the local instance of CSH, for example for node 2, KISS interface and CSP V1 the routing table will look like:
    2/5 LOOP
    0/0 KISS

    This means that if we do "ident 2" our own machine replies, while all other nodes interface correctly over KISS.

  3. PietroAngeli commented on Mar 29, 2023

    @PietroAngeli
    Author

    By the way, I tested this with satctl hash 04090ec (building with meson 0.62.0 for compatibility) and it works perfectly, the routing table is as i showed and there are no conflicts. I also worked with other implementations of libcsp and they route this way, without the need to reserve node 0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions