Hybrid ICN (hICN) plugin  v21.06-rc0-4-g18fa668
Public Attributes | List of all members
hicn_ops_s Struct Reference

Public Attributes

int(* init_packet_header )(hicn_type_t type, hicn_protocol_t *h)
 Initialize the headers of the hicn packet. More...
 
int(* get_interest_locator )(hicn_type_t type, const hicn_protocol_t *h, ip46_address_t *ip_address)
 Retrieves an Interest locator. More...
 
int(* set_interest_locator )(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *ip_address)
 Sets an Interest locator. More...
 
int(* get_interest_name )(hicn_type_t type, const hicn_protocol_t *h, hicn_name_t *name)
 Retrieves an Interest name. More...
 
int(* set_interest_name )(hicn_type_t type, hicn_protocol_t *h, const hicn_name_t *name)
 Sets an Interest name. More...
 
int(* get_interest_name_suffix )(hicn_type_t type, const hicn_protocol_t *h, hicn_name_suffix_t *suffix)
 Retrieves an Interest name suffix. More...
 
int(* set_interest_name_suffix )(hicn_type_t type, hicn_protocol_t *h, const hicn_name_suffix_t *suffix)
 Sets an Interest name suffix. More...
 
int(* mark_packet_as_interest )(hicn_type_t type, hicn_protocol_t *h)
 Set flag to mark current packet as interest. More...
 
int(* mark_packet_as_data )(hicn_type_t type, hicn_protocol_t *h)
 Set flag to mark current packet as data. More...
 
int(* reset_interest_for_hash )(hicn_type_t type, hicn_protocol_t *h)
 Clear the necessary Interest fields in order to hash it. More...
 
int(* get_data_locator )(hicn_type_t type, const hicn_protocol_t *h, ip46_address_t *ip_address)
 Retrieves a Data locator. More...
 
int(* set_data_locator )(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *ip_address)
 Sets a Data locator. More...
 
int(* get_data_name )(hicn_type_t type, const hicn_protocol_t *h, hicn_name_t *name)
 Retrieves a Data name. More...
 
int(* set_data_name )(hicn_type_t type, hicn_protocol_t *h, const hicn_name_t *name)
 Sets a Data name. More...
 
int(* get_data_name_suffix )(hicn_type_t type, const hicn_protocol_t *h, hicn_name_suffix_t *suffix)
 Retrieves a Data name suffix. More...
 
int(* set_data_name_suffix )(hicn_type_t type, hicn_protocol_t *h, const hicn_name_suffix_t *suffix)
 Sets a Data name suffix. More...
 
int(* get_data_pathlabel )(hicn_type_t type, const hicn_protocol_t *h, u32 *pathlabel)
 Retrieves a Data pathlabel. More...
 
int(* set_data_pathlabel )(hicn_type_t type, hicn_protocol_t *h, const u32 pathlabel)
 Sets a Data pathlabel. More...
 
int(* update_data_pathlabel )(hicn_type_t type, hicn_protocol_t *h, const hicn_faceid_t face_id)
 Update a Data pathlabel with a new face identifier. More...
 
int(* reset_data_for_hash )(hicn_type_t type, hicn_protocol_t *h)
 Clear the necessary Data fields in order to hash it. More...
 
int(* get_lifetime )(hicn_type_t type, const hicn_protocol_t *h, hicn_lifetime_t *lifetime)
 Retrieves an Interest or Data lifetime. More...
 
int(* set_lifetime )(hicn_type_t type, hicn_protocol_t *h, const hicn_lifetime_t lifetime)
 Sets an Interest or Data lifetime. More...
 
int(* update_checksums )(hicn_type_t type, hicn_protocol_t *h, u16 partial_csum, size_t payload_length)
 Update all checksums in packet headers. More...
 
int(* verify_checksums )(hicn_type_t type, hicn_protocol_t *h, u16 partial_csum, size_t payload_length)
 Validate all checksums in packet headers. More...
 
int(* rewrite_interest )(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *addr_new, ip46_address_t *addr_old)
 Rewrite an Interest packet header (locator) More...
 
int(* rewrite_data )(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *addr_new, ip46_address_t *addr_old, const hicn_faceid_t face_id, u8 reset_pl)
 Rewrite a Data packet header (locator + pathlabel) More...
 
int(* get_length )(hicn_type_t type, const hicn_protocol_t *h, size_t *length)
 Return the packet length. More...
 
int(* get_current_header_length )(hicn_type_t type, const hicn_protocol_t *h, size_t *header_length)
 Return the current packet header length. More...
 
int(* get_header_length )(hicn_type_t type, const hicn_protocol_t *h, size_t *header_length)
 Return the packet header length. More...
 
int(* get_payload_length )(hicn_type_t type, const hicn_protocol_t *h, size_t *payload_length)
 Return the packet payload length. More...
 
int(* set_payload_length )(hicn_type_t type, hicn_protocol_t *h, size_t payload_length)
 Sets the packet paylaod length. More...
 
int(* get_signature_size )(hicn_type_t type, const hicn_protocol_t *h, size_t *signature_size)
 Retrieves an Interest or Data signature size. More...
 
int(* set_signature_size )(hicn_type_t type, hicn_protocol_t *h, size_t signature_size)
 Sets an Interest or Data signature size. More...
 
int(* set_signature_gap )(hicn_type_t type, hicn_protocol_t *h, uint8_t signature_gap)
 Sets an Interest or Data signature gap between maximum size and real size. More...
 
int(* get_signature_gap )(hicn_type_t type, const hicn_protocol_t *h, uint8_t *signature_gap)
 gets an Interest or Data signature gap between maximum size and real size More...
 
int(* get_signature_timestamp )(hicn_type_t type, const hicn_protocol_t *h, uint64_t *signature_timestamp)
 Gets the signature timestamp. More...
 
int(* set_signature_timestamp )(hicn_type_t type, hicn_protocol_t *h, uint64_t signature_timestamp)
 Sets the signature timestamp. More...
 
int(* get_validation_algorithm )(hicn_type_t type, const hicn_protocol_t *h, uint8_t *validation_algorithm)
 Gets the signature validation algorithm. More...
 
int(* set_validation_algorithm )(hicn_type_t type, hicn_protocol_t *h, uint8_t validation_algorithm)
 Sets the signature validation algorithm. More...
 
int(* get_key_id )(hicn_type_t type, hicn_protocol_t *h, uint8_t **key_id, uint8_t *key_id_size)
 Gets the key id. More...
 
int(* set_key_id )(hicn_type_t type, hicn_protocol_t *h, uint8_t *key_id)
 Sets the key id. More...
 
int(* get_signature )(hicn_type_t type, hicn_protocol_t *h, uint8_t **signature)
 Get a pointer to the signature field in the packet. More...
 

Member Data Documentation

◆ get_current_header_length

int(* hicn_ops_s::get_current_header_length)(hicn_type_t type, const hicn_protocol_t *h, size_t *header_length)

Return the current packet header length.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the packet @parma [out] header_length - Returned packet current header length
Returns
hICN error code

◆ get_data_locator

int(* hicn_ops_s::get_data_locator)(hicn_type_t type, const hicn_protocol_t *h, ip46_address_t *ip_address)

Retrieves a Data locator.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Data packet
[out]ip_address- Retrieved locator
Returns
hICN error code

◆ get_data_name

int(* hicn_ops_s::get_data_name)(hicn_type_t type, const hicn_protocol_t *h, hicn_name_t *name)

Retrieves a Data name.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Data packet
[out]name- Retrieved name
Returns
hICN error code

◆ get_data_name_suffix

int(* hicn_ops_s::get_data_name_suffix)(hicn_type_t type, const hicn_protocol_t *h, hicn_name_suffix_t *suffix)

Retrieves a Data name suffix.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Data packet
[out]suffix- Retrieved name suffix
Returns
hICN error code

◆ get_data_pathlabel

int(* hicn_ops_s::get_data_pathlabel)(hicn_type_t type, const hicn_protocol_t *h, u32 *pathlabel)

Retrieves a Data pathlabel.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Data packet
[out]pathlabel- Retrieved pathlabel
Returns
hICN error code

◆ get_header_length

int(* hicn_ops_s::get_header_length)(hicn_type_t type, const hicn_protocol_t *h, size_t *header_length)

Return the packet header length.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the packet @parma [out] header_length - Returned packet header length
Returns
hICN error code

◆ get_interest_locator

int(* hicn_ops_s::get_interest_locator)(hicn_type_t type, const hicn_protocol_t *h, ip46_address_t *ip_address)

Retrieves an Interest locator.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Interest packet
[out]ip_address- Retrieved locator
Returns
hICN error code

◆ get_interest_name

int(* hicn_ops_s::get_interest_name)(hicn_type_t type, const hicn_protocol_t *h, hicn_name_t *name)

Retrieves an Interest name.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Interest packet
[out]name- Retrieved name
Returns
hICN error code

◆ get_interest_name_suffix

int(* hicn_ops_s::get_interest_name_suffix)(hicn_type_t type, const hicn_protocol_t *h, hicn_name_suffix_t *suffix)

Retrieves an Interest name suffix.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Interest packet
[out]suffix- Retrieved name suffix
Returns
hICN error code

◆ get_key_id

int(* hicn_ops_s::get_key_id)(hicn_type_t type, hicn_protocol_t *h, uint8_t **key_id, uint8_t *key_id_size)

Gets the key id.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[out]key_id- Retrieved key id first byte address
Returns
hICN error code

◆ get_length

int(* hicn_ops_s::get_length)(hicn_type_t type, const hicn_protocol_t *h, size_t *length)

Return the packet length.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the packet @parma [out] length - Returned packet length
Returns
hICN error code

◆ get_lifetime

int(* hicn_ops_s::get_lifetime)(hicn_type_t type, const hicn_protocol_t *h, hicn_lifetime_t *lifetime)

Retrieves an Interest or Data lifetime.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Interest or Data packet
[out]pathlabel- Retrieved lifetime
Returns
hICN error code

◆ get_payload_length

int(* hicn_ops_s::get_payload_length)(hicn_type_t type, const hicn_protocol_t *h, size_t *payload_length)

Return the packet payload length.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the packet @parma [out] payload_length - Returned packet payload length
Returns
hICN error code

◆ get_signature

int(* hicn_ops_s::get_signature)(hicn_type_t type, hicn_protocol_t *h, uint8_t **signature)

Get a pointer to the signature field in the packet.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[out]signature- Pointer to the memory region holding the signature
Returns
hICN error code

◆ get_signature_gap

int(* hicn_ops_s::get_signature_gap)(hicn_type_t type, const hicn_protocol_t *h, uint8_t *signature_gap)

gets an Interest or Data signature gap between maximum size and real size

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]signature_size- retrieve the gap between maximum size and real size
Returns
hICN error code

◆ get_signature_size

int(* hicn_ops_s::get_signature_size)(hicn_type_t type, const hicn_protocol_t *h, size_t *signature_size)

Retrieves an Interest or Data signature size.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Interest or Data packet
[out]signature_size- Retrieved signature size
Returns
hICN error code

◆ get_signature_timestamp

int(* hicn_ops_s::get_signature_timestamp)(hicn_type_t type, const hicn_protocol_t *h, uint64_t *signature_timestamp)

Gets the signature timestamp.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[out]signature_timestamp- Retrieved signature timestamp
Returns
hICN error code

◆ get_validation_algorithm

int(* hicn_ops_s::get_validation_algorithm)(hicn_type_t type, const hicn_protocol_t *h, uint8_t *validation_algorithm)

Gets the signature validation algorithm.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[out]validation_algorithm- Retrieved validation_algorithm
Returns
hICN error code

◆ init_packet_header

int(* hicn_ops_s::init_packet_header)(hicn_type_t type, hicn_protocol_t *h)

Initialize the headers of the hicn packet.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the packet

◆ mark_packet_as_data

int(* hicn_ops_s::mark_packet_as_data)(hicn_type_t type, hicn_protocol_t *h)

Set flag to mark current packet as data.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest packet
Returns
hICN error code

◆ mark_packet_as_interest

int(* hicn_ops_s::mark_packet_as_interest)(hicn_type_t type, hicn_protocol_t *h)

Set flag to mark current packet as interest.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest packet
Returns
hICN error code

◆ reset_data_for_hash

int(* hicn_ops_s::reset_data_for_hash)(hicn_type_t type, hicn_protocol_t *h)

Clear the necessary Data fields in order to hash it.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Data packet
Returns
hICN error code

◆ reset_interest_for_hash

int(* hicn_ops_s::reset_interest_for_hash)(hicn_type_t type, hicn_protocol_t *h)

Clear the necessary Interest fields in order to hash it.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest packet
Returns
hICN error code

◆ rewrite_data

int(* hicn_ops_s::rewrite_data)(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *addr_new, ip46_address_t *addr_old, const hicn_faceid_t face_id, u8 reset_pl)

Rewrite a Data packet header (locator + pathlabel)

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Data packet
[in]addr_new- New locator
[in]addr_old- Old locator (set to NULL, used internally to compute incremental checksums)
[in]face_id- Face identifier used to update pathlabel
[in]reset_pl- If not zero, reset the current pathlabel before update it
Returns
hICN error code

◆ rewrite_interest

int(* hicn_ops_s::rewrite_interest)(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *addr_new, ip46_address_t *addr_old)

Rewrite an Interest packet header (locator)

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the Interest packet
[in]addr_new- New locator
[in]addr_old- Old locator (set to NULL, used internally to compute incremental checksums)
Returns
hICN error code

◆ set_data_locator

int(* hicn_ops_s::set_data_locator)(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *ip_address)

Sets a Data locator.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Data packet
[in]ip_address- Locator to set
Returns
hICN error code

◆ set_data_name

int(* hicn_ops_s::set_data_name)(hicn_type_t type, hicn_protocol_t *h, const hicn_name_t *name)

Sets a Data name.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Data packet
[in]name- Name to set
Returns
hICN error code

◆ set_data_name_suffix

int(* hicn_ops_s::set_data_name_suffix)(hicn_type_t type, hicn_protocol_t *h, const hicn_name_suffix_t *suffix)

Sets a Data name suffix.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Data packet
[in]suffix- Name suffix to set
Returns
hICN error code

◆ set_data_pathlabel

int(* hicn_ops_s::set_data_pathlabel)(hicn_type_t type, hicn_protocol_t *h, const u32 pathlabel)

Sets a Data pathlabel.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Data packet
[in]pathlabel- Pathlabel to set
Returns
hICN error code

◆ set_interest_locator

int(* hicn_ops_s::set_interest_locator)(hicn_type_t type, hicn_protocol_t *h, const ip46_address_t *ip_address)

Sets an Interest locator.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest packet
[in]ip_address- Locator to set
Returns
hICN error code

◆ set_interest_name

int(* hicn_ops_s::set_interest_name)(hicn_type_t type, hicn_protocol_t *h, const hicn_name_t *name)

Sets an Interest name.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest packet
[in]name- Name to set
Returns
hICN error code

◆ set_interest_name_suffix

int(* hicn_ops_s::set_interest_name_suffix)(hicn_type_t type, hicn_protocol_t *h, const hicn_name_suffix_t *suffix)

Sets an Interest name suffix.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest packet
[in]suffix- Name suffix to set
Returns
hICN error code

◆ set_key_id

int(* hicn_ops_s::set_key_id)(hicn_type_t type, hicn_protocol_t *h, uint8_t *key_id)

Sets the key id.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]key_id- Key id first byte address
Returns
hICN error code

◆ set_lifetime

int(* hicn_ops_s::set_lifetime)(hicn_type_t type, hicn_protocol_t *h, const hicn_lifetime_t lifetime)

Sets an Interest or Data lifetime.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]pathlabel- Lifetime to set
Returns
hICN error code

◆ set_payload_length

int(* hicn_ops_s::set_payload_length)(hicn_type_t type, hicn_protocol_t *h, size_t payload_length)

Sets the packet paylaod length.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the packet @parma [out] payload_length - Payload length to set
Returns
hICN error code

◆ set_signature_gap

int(* hicn_ops_s::set_signature_gap)(hicn_type_t type, hicn_protocol_t *h, uint8_t signature_gap)

Sets an Interest or Data signature gap between maximum size and real size.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]signature_size- Signature size to set
Returns
hICN error code

◆ set_signature_size

int(* hicn_ops_s::set_signature_size)(hicn_type_t type, hicn_protocol_t *h, size_t signature_size)

Sets an Interest or Data signature size.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]signature_size- Signature size to set
Returns
hICN error code

◆ set_signature_timestamp

int(* hicn_ops_s::set_signature_timestamp)(hicn_type_t type, hicn_protocol_t *h, uint64_t signature_timestamp)

Sets the signature timestamp.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]signature_timestamp- Signature timestamp to set
Returns
hICN error code

◆ set_validation_algorithm

int(* hicn_ops_s::set_validation_algorithm)(hicn_type_t type, hicn_protocol_t *h, uint8_t validation_algorithm)

Sets the signature validation algorithm.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Interest or Data packet
[in]validation_algorithm- Validation algorithm enumeration
Returns
hICN error code

◆ update_checksums

int(* hicn_ops_s::update_checksums)(hicn_type_t type, hicn_protocol_t *h, u16 partial_csum, size_t payload_length)

Update all checksums in packet headers.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the packet
[in]partial_csum- Partial checksum (set to 0, used internally to carry intermediate values from IP pseudo-header)
[in]payload_length- Payload length (can be set to ~0, retrieved and used internally to carry payload length across protocol headers)
Returns
hICN error code

◆ update_data_pathlabel

int(* hicn_ops_s::update_data_pathlabel)(hicn_type_t type, hicn_protocol_t *h, const hicn_faceid_t face_id)

Update a Data pathlabel with a new face identifier.

Parameters
[in]type- hICN packet type
[in,out]h- Buffer holding the Data packet
[in]pathlabel- Face identifier used to update pathlabel
Returns
hICN error code

◆ verify_checksums

int(* hicn_ops_s::verify_checksums)(hicn_type_t type, hicn_protocol_t *h, u16 partial_csum, size_t payload_length)

Validate all checksums in packet headers.

Parameters
[in]type- hICN packet type
[in]h- Buffer holding the packet
[in]partial_csum- Partial checksum, or zero if no partial checksum available
[in]payload_length- Payload length (can be set to ~0, retrieved and used internally to carry payload length across protocol headers)
Returns
hICN error code

The documentation for this struct was generated from the following file: