Hybrid ICN (hICN) plugin  v21.06-rc0-4-g18fa668
Classes | Macros | Typedefs | Enumerations | Functions | Variables
face.h File Reference

Face abstraction. More...

#include <hicn/policy.h>
#include <hicn/util/ip_address.h>
#include <net/if.h>
Include dependency graph for face.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  netdevice_t
 Netdevice type. More...
 
struct  face_t
 

Macros

#define SPACES(x)   x
 
#define SPACE   1
 
#define NULLTERM   1
 
#define foreach_netdevice_type
 
#define MAXSZ_NETDEVICE_TYPE_   9
 
#define MAXSZ_NETDEVICE_TYPE   MAXSZ_NETDEVICE_TYPE_ + NULLTERM
 
#define _(x)   NETDEVICE_TYPE_ ## x,
 
#define NETDEVICE_EMPTY
 
#define netdevice_initialize_from_index   netdevice_set_index
 
#define netdevice_initialize_from_name   netdevice_set_name
 
#define NETDEVICE_UNDEFINED_INDEX   0
 
#define foreach_face_state
 
#define MAXSZ_FACE_STATE_   9
 
#define MAXSZ_FACE_STATE   MAXSZ_FACE_STATE_ + 1
 
#define _(x)   FACE_STATE_ ## x,
 
#define foreach_face_type
 
#define MAXSZ_FACE_TYPE_   13
 
#define MAXSZ_FACE_TYPE   MAXSZ_FACE_TYPE_ + 1
 
#define _(x)   FACE_TYPE_ ## x,
 
#define MAXSZ_FACE_   MAXSZ_FACE_TYPE_ + 2 * MAXSZ_URL_ + 2 * MAXSZ_FACE_STATE_ + 4
 
#define MAXSZ_FACE   MAXSZ_FACE_ + 1
 

Typedefs

typedef u32 face_id_t
 
typedef int(* face_cmp_t) (const face_t *f1, const face_t *f2)
 

Enumerations

enum  netdevice_type_t { foreach_netdevice_type }
 
enum  face_state_t { foreach_face_state }
 
enum  face_type_t { foreach_face_type }
 

Functions

netdevice_tnetdevice_create_from_index (u32 index)
 
netdevice_tnetdevice_create_from_name (const char *name)
 
void netdevice_free (netdevice_t *netdevice)
 
int netdevice_get_index (const netdevice_t *netdevice, u32 *index)
 
int netdevice_set_index (netdevice_t *netdevice, u32 index)
 
int netdevice_get_name (const netdevice_t *netdevice, const char **name)
 
int netdevice_set_name (netdevice_t *netdevice, const char *name)
 
int netdevice_update_index (netdevice_t *netdevice)
 
int netdevice_update_name (netdevice_t *netdevice)
 
int netdevice_cmp (const netdevice_t *nd1, const netdevice_t *nd2)
 
int face_initialize (face_t *face)
 
int face_initialize_udp (face_t *face, const char *interface_name, const ip_address_t *local_addr, u16 local_port, const ip_address_t *remote_addr, u16 remote_port, int family)
 
int face_initialize_udp_sa (face_t *face, const char *interface_name, const struct sockaddr *local_addr, const struct sockaddr *remote_addr)
 
face_tface_create ()
 
face_tface_create_udp (const char *interface_name, const ip_address_t *local_addr, u16 local_port, const ip_address_t *remote_addr, u16 remote_port, int family)
 
face_tface_create_udp_sa (const char *interface_name, const struct sockaddr *local_addr, const struct sockaddr *remote_addr)
 
int face_finalize (face_t *face)
 
void face_free (face_t *face)
 
int face_cmp (const face_t *f1, const face_t *f2)
 
unsigned int face_hash (const face_t *face)
 
size_t face_snprintf (char *s, size_t size, const face_t *face)
 
policy_tags_t face_get_tags (const face_t *face)
 
int face_set_tags (face_t *face, policy_tags_t tags)
 

Variables

const char * netdevice_type_str []
 
const char * face_state_str []
 
const char * face_type_str []
 

Detailed Description

Face abstraction.

Macro Definition Documentation

◆ foreach_face_state

#define foreach_face_state
Value:
_(UNDEFINED) \
_(DOWN) \
_(UP) \
_(N)

◆ foreach_face_type

#define foreach_face_type
Value:
_(UNDEFINED) \
_(HICN) \
_(HICN_LISTENER) \
_(TCP) \
_(TCP_LISTENER) \
_(UDP) \
_(UDP_LISTENER) \
_(N)

◆ foreach_netdevice_type

#define foreach_netdevice_type
Value:
_(UNDEFINED) \
_(LOOPBACK) \
_(WIRED) \
_(WIFI) \
_(CELLULAR) \
_(VPN) \
_(N)

◆ NETDEVICE_EMPTY

#define NETDEVICE_EMPTY
Value:
.index = 0, \
.name = {0}, \
}
netdevice_t
Netdevice type.
Definition: face.h:73