Skip to content

Avoid sending LLDP packets to certain ports #68

@italovalcy

Description

@italovalcy

Testing Kytos with a Noviflow switch which have a BFD logical port returns the following error:

2022-11-07 16:03:59,491 - INFO [kytos.napps.kytos/of_core] (MainThread) Modified Interface('novi_lport1002', 1002, Switch('00:00:00:00:00:00:00:02')) 00:00:00:00:00:00:00:02:1002
2022-11-07 16:04:00,914 - ERROR [kytos.napps.kytos/of_core] (MainThread) OFPT_ERROR: type ErrorType.OFPET_BAD_ACTION, error code 4, from switch 00:00:00:00:00:00:00:02, xid 2997175759/0xb2a545cf

This happens because Noviflow logicalport of the type BFD does not support PacketOut (quoting the Noviflow docs: It is NOT possible to MATCH on BFD Logical ports, nor is it possible to output to a BFD Logical port - NF200157). On the other hand, there is no easy way to identify this type of port:

  • we cannot avoid sending LLDP to all logicalports, because LAG ports would benefit from it
  • PORT_DESC does not provide means to identify BFD logicalports (which does not support match and output) - i.e., the port_desc with a logical port comes with incorrect supported capabilities (NO_RECV = False; NO_FWD = False; NO_PACKET_IN=False)
  • speed is not safe to use in order to ignore those ports, because LAG logicalports also comes with wrong speed

One possible solution would be to handle this when it happens and avoid sending future LLDP on ports that returned BAD_ACTION (should we stop sending until the operator clears that port? test from time to time to resume normal operation?). Maybe a lightweight blueprint to cover this point.

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