#iana #protocols #definition #internet #networking #generic #address

netgauze-iana

Collection of generic Internet Naming Authority (IANA) definitions that are not specific to a single protocol

3 releases (breaking)

0.3.0 Jan 31, 2024
0.2.0 Oct 9, 2023
0.1.0 Mar 5, 2023

#645 in Network programming

Download history 16/week @ 2024-01-29 20/week @ 2024-02-12 32/week @ 2024-02-19 43/week @ 2024-02-26 2/week @ 2024-03-04 30/week @ 2024-03-11 5/week @ 2024-03-18 5/week @ 2024-03-25 72/week @ 2024-04-01

113 downloads per month
Used in 5 crates (4 directly)

Apache-2.0

32KB
457 lines

NetGauze IANA package

Collection of generic IANA definitions that are not specific to a single protocol.

Developer documentation

Adding support for new address and subsequent address families

Adding support for Address Family (AFI) or Subsequent Address Family (SAFI)

  1. New address families are added to the pub enum AddressFamily or pub enum SubsequentAddressFamily located at src/address_family.rs.
  2. We use CamelCase convention for address families.
  3. Please document the RFC and IANA codes for the address family.

Adding support for Address Type

Since not all AddressFamily and SubsequentAddressFamily are valid combinations, we introduce an enum pub enum AddressType that defines a set of valid combination to ensure only valid AFI/SAFI are used at compile time.

  1. Add the name to pub enum AddressType located at src/address_family.rs.
  2. The name is convention is as follow: {$AddressFamily}{$SubsequentAddressFamily}.
  3. In impl AddressType adjust pub const fn address_family and pub const fn subsequent_address_family to return the correct AddressFamily and $SubsequentAddressFamily for the new type. If not, the compiler will throw an error.
  4. In impl AddressType adjust from_afi_safi to return the newly defined {$AddressFamily}{$SubsequentAddressFamily} for the given AFI and SAFI.
  5. Write tests! See test_address_type_check_ret_afi_safi and test_address_type_try_from.

Dependencies

~0.5–1.1MB
~26K SLoC