-
Sub-task
-
Resolution: Done
-
Medium
-
None
-
None
-
light refactory one
In hicn-light, a face is typically referring to a connection, itself associated to a listener. This comes from an implementation perspective in which a socket/file descriptor was initially created on a listener, and shared among various connections.
This is been partly reconsidered for efficient implementation of UDP connections where it was important to use bound and connected UDP socket for faster operation.
Still, as only connections are involved in the data plane, this organization has not been modified so far, and the face table is in fact made of two data structures:
- a listener table
- a connection table
Both are made of a preallocated memory pool, as well as indices allowing for fast lookup.
Connection and listener ids are the position of the related vector, allowing for a constant lookup time by id.
The listener table adds the following indices:
- by (encapsulation type, listener address) tuple
- by symbolic name
The connection table adds the following index:
- by address pair
- by symbolic name