Module neli::err

source ·
Expand description

This is the module that contains the error types used in neli

There are four main types:

  • Nlmsgerr - an application error returned from netlink as a packet.
  • NlError - a general netlink error wrapping application errors, serialization and deserialization errors, and other errors that occur in neli.
  • DeError - error while deserializing
  • SerError - error while serializing

Design decisions

All errors implement std::error::Error in an attempt to allow them to be used in conjunction with Result for easier error management even at the protocol error level.

As of v0.6.0, deserializing the NlmsghdrErr struct has two optional type parameters for specifying the type of the type constant and the payload. If neither of these are provided, the deserialization defaults to u16 and Buffer respectively which work for all cases. See the examples/ directory for a usage example.

Structs

Struct representing netlink packets containing errors
A special struct that represents the contents of an error returned at the application level. Because the returned nl_len cannot always determine the length of the packet (as in the case of ACKs where no payload will be returned), this data structure relies on the total packet size for deserialization.

Enums

Deserialization error
General netlink error
Serialization error
An error to wrap all system level errors in a single, higher level error.