37 #ifndef __SL_NET_IF_H__ 38 #define __SL_NET_IF_H__ 65 #define SLNETIF_ID_1 (1 << 0) 66 #define SLNETIF_ID_2 (1 << 1) 67 #define SLNETIF_ID_3 (1 << 2) 68 #define SLNETIF_ID_4 (1 << 3) 69 #define SLNETIF_ID_5 (1 << 4) 70 #define SLNETIF_ID_6 (1 << 5) 71 #define SLNETIF_ID_7 (1 << 6) 72 #define SLNETIF_ID_8 (1 << 7) 73 #define SLNETIF_ID_9 (1 << 8) 74 #define SLNETIF_ID_10 (1 << 9) 75 #define SLNETIF_ID_11 (1 << 10) 76 #define SLNETIF_ID_12 (1 << 11) 77 #define SLNETIF_ID_13 (1 << 12) 78 #define SLNETIF_ID_14 (1 << 13) 79 #define SLNETIF_ID_15 (1 << 14) 80 #define SLNETIF_ID_16 (1 << 15) 82 #define SLNETIF_MAX_IF (16) 85 #define ONLY_ONE_BIT_IS_SET(x) (((x > 0) && ((x & (x - 1)) == 0))?true:false) 90 #define SLNETIF_STATUS_DISCONNECTED (0) 91 #define SLNETIF_STATUS_CONNECTED (1) 123 #define SLNETIF_ADDR_CFG_UNKNOWN (0) 124 #define SLNETIF_ADDR_CFG_DHCP (1) 125 #define SLNETIF_ADDR_CFG_DHCP_LLA (2) 126 #define SLNETIF_ADDR_CFG_STATIC (4) 127 #define SLNETIF_ADDR_CFG_STATELESS (5) 128 #define SLNETIF_ADDR_CFG_STATEFUL (6) 131 #define SLNETIF_SEC_OBJ_TYPE_RSA_PRIVATE_KEY (1) 132 #define SLNETIF_SEC_OBJ_TYPE_CERTIFICATE (2) 133 #define SLNETIF_SEC_OBJ_TYPE_DH_KEY (3) 141 #define SLNETIF_QUERY_IF_STATE_BIT (1 << 0) 147 #define SLNETIF_QUERY_IF_CONNECTION_STATUS_BIT (1 << 1) 154 #define SLNETIF_QUERY_IF_ALLOW_PARTIAL_MATCH_BIT (1 << 2) 183 int16_t (*
sockCreate) (
void *ifContext, int16_t domain, int16_t type, int16_t protocol,
void **sdContext);
188 int32_t (*
sockListen) (int16_t sd,
void *sdContext, int16_t backlog);
195 int32_t (*
sockRecv) (int16_t sd,
void *sdContext,
void *buf, uint32_t len, uint32_t flags);
197 int32_t (*
sockSend) (int16_t sd,
void *sdContext,
const void *buf, uint32_t len, uint32_t flags);
202 int32_t (*
utilGetHostByName) (
void *ifContext,
char *name,
const uint16_t nameLen, uint32_t *ipAddr, uint16_t *ipAddrLen,
const uint8_t family);
208 int32_t (*
ifLoadSecObj) (
void *ifContext, uint16_t objType,
char *objName, int16_t objNameLen, uint8_t *objBuff, int16_t objBuffLen);
638 int32_t
SlNetIf_loadSecObj(uint16_t objType,
char *objName, int16_t objNameLen, uint8_t *objBuff, int16_t objBuffLen, uint32_t ifBitmap);
Definition: slnetif.h:117
int32_t(* sockSend)(int16_t sd, void *sdContext, const void *buf, uint32_t len, uint32_t flags)
Definition: slnetif.h:197
int32_t(* sockShutdown)(int16_t sd, void *sdContext, int16_t how)
Definition: slnetif.h:185
int32_t(* connEnable)(void *ifContext)
Definition: slnetif.h:179
const char * SlNetIf_getNameByID(uint16_t ifID)
Get interface Name from interface ID.
int16_t(* sockAccept)(int16_t sd, void *sdContext, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen, uint8_t flags, void **acceptedSdContext)
Definition: slnetif.h:186
int32_t(* sockGetOpt)(int16_t sd, void *sdContext, int16_t level, int16_t optname, void *optval, SlNetSocklen_t *optlen)
Definition: slnetif.h:194
Definition: slnetif.h:119
int32_t(* sockSetOpt)(int16_t sd, void *sdContext, int16_t level, int16_t optname, void *optval, SlNetSocklen_t optlen)
Definition: slnetif.h:193
int32_t SlNetIf_setPriority(uint16_t ifID, uint8_t priority)
Set interface priority.
SlNetIf_Config_t structure contains all the function callbacks that are expected to be filled by the ...
Definition: slnetif.h:176
int32_t SlNetIf_unregisterEventHandler(SlNetIf_Event_t EventCallback)
Unegister node to If events list.
int32_t(* ifGetIPAddr)(void *ifContext, SlNetIfAddressType_e addrType, uint16_t *addrConfig, uint32_t *ipAddr)
Definition: slnetif.h:206
int32_t(* sockConnect)(int16_t sd, void *sdContext, const SlNetSock_Addr_t *addr, SlNetSocklen_t addrlen, uint8_t flags)
Definition: slnetif.h:189
The SlNetIf_t structure holds the configuration of the interface Its ID, name, flags and the configur...
Definition: slnetif.h:218
SlNetIfAddressType_e
Address type enum to be used in get ip address function.
Definition: slnetif.h:105
uint16_t SlNetSocklen_t
The SlNetSocklen_t is used for declaring the socket length parameter.
Definition: slnetsock.h:663
int32_t SlNetIf_init(int32_t flags)
Initialize the SlNetIf module.
int32_t(* sockGetLocalName)(int16_t sd, void *sdContext, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen)
Definition: slnetif.h:191
SlNetIf_t * SlNetIf_queryIf(uint32_t ifBitmap, uint32_t queryBitmap)
Query for the highest priority interface, given a list of interfaces and properties.
int32_t SlNetIf_getIPAddr(uint16_t ifID, SlNetIfAddressType_e addrType, uint16_t *addrConfig, uint32_t *ipAddr)
Get IP Address of specific interface.
int32_t flags
Definition: slnetif.h:222
IpV4 socket address.
Definition: slnetsock.h:668
struct SlNetIf_Config_t SlNetIf_Config_t
SlNetIf_Config_t structure contains all the function callbacks that are expected to be filled by the ...
int32_t(* sockBind)(int16_t sd, void *sdContext, const SlNetSock_Addr_t *addr, int16_t addrlen)
Definition: slnetif.h:187
SlNetIfEventId_e
Events type enum to be used in event handler function.
Definition: slnetif.h:115
int32_t(* ifLoadSecObj)(void *ifContext, uint16_t objType, char *objName, int16_t objNameLen, uint8_t *objBuff, int16_t objBuffLen)
Definition: slnetif.h:208
The SlNetSock_SdSet_t structure holds the sd array for SlNetSock_select function. ...
Definition: slnetsock.h:712
int32_t(* utilGetHostByName)(void *ifContext, char *name, const uint16_t nameLen, uint32_t *ipAddr, uint16_t *ipAddrLen, const uint8_t family)
Definition: slnetif.h:202
int32_t(* sockClose)(int16_t sd, void *sdContext)
Definition: slnetif.h:184
Definition: slnetif.h:118
int32_t(* sockstartSec)(int16_t sd, void *sdContext, SlNetSockSecAttrib_t *secAttrib, uint8_t flags)
Definition: slnetif.h:199
int32_t(* ifGetConnectionStatus)(void *ifContext)
Definition: slnetif.h:207
Definition: slnetif.h:109
int32_t(* SlNetIf_Event_t)(SlNetIfEventId_e status, uint16_t ifID, void *pData)
Interface call back function prototype. This function is called when an event occurs.
Definition: slnetif.h:164
SlNetIfState_e
Interface state bit pool to be used in set interface state function.
Definition: slnetif.h:96
Secure socket attribute context.
Definition: slnetsock.h:585
int32_t SlNetIf_getPriority(uint16_t ifID)
Get interface priority.
int32_t SlNetIf_getConnectionStatus(uint16_t ifID)
Get the connection status of an interface.
struct SlNetIf_t SlNetIf_t
The SlNetIf_t structure holds the configuration of the interface Its ID, name, flags and the configur...
int16_t(* sockCreate)(void *ifContext, int16_t domain, int16_t type, int16_t protocol, void **sdContext)
Definition: slnetif.h:183
void * ifContext
Definition: slnetif.h:224
int32_t(* sockGetPeerName)(int16_t sd, void *sdContext, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen)
Definition: slnetif.h:190
int32_t(* sockSelect)(void *ifContext, int16_t nsds, SlNetSock_SdSet_t *readsds, SlNetSock_SdSet_t *writesds, SlNetSock_SdSet_t *exceptsds, SlNetSock_Timeval_t *timeout)
Definition: slnetif.h:192
Definition: slnetif.h:107
int32_t(* sockSendTo)(int16_t sd, void *sdContext, const void *buf, uint32_t len, uint32_t flags, const SlNetSock_Addr_t *to, SlNetSocklen_t tolen)
Definition: slnetif.h:198
int32_t SlNetIf_add(uint16_t ifID, char *ifName, const SlNetIf_Config_t *ifConf, uint8_t priority)
Add a new SlNetIf-compatible interface to the system.
int16_t(* connDisable)(void *ifContext)
Definition: slnetif.h:180
int32_t(* sockRecv)(int16_t sd, void *sdContext, void *buf, uint32_t len, uint32_t flags)
Definition: slnetif.h:195
SlNetIf_t * SlNetIf_getIfByID(uint16_t ifID)
Get interface configuration from interface ID.
int32_t(* sockRecvFrom)(int16_t sd, void *sdContext, void *buf, uint32_t len, uint32_t flags, SlNetSock_Addr_t *from, SlNetSocklen_t *fromlen)
Definition: slnetif.h:196
int32_t SlNetIf_getState(uint16_t ifID)
Get interface state.
char * ifName
Definition: slnetif.h:221
int32_t(* ifCreateContext)(uint16_t ifID, const char *ifName, void **ifContext, SlNetIf_Event_t ifCallback)
Definition: slnetif.h:209
SlNetIf_Config_t * ifConf
Definition: slnetif.h:223
uint32_t(* utilPing)(void *ifContext, const SlNetSock_Addr_t *addr, SlNetSocklen_t addrLen, uint32_t attempts, uint16_t timeout, uint16_t interval, uint16_t packetSize, int16_t flags)
Definition: slnetif.h:203
int32_t SlNetIf_getIDByName(char *ifName)
Get interface ID from interface name.
uint32_t ifID
Definition: slnetif.h:220
Definition: slnetif.h:108
int32_t SlNetIf_registerEventHandler(SlNetIf_Event_t EventCallback)
Register node to If events list.
struct timeval SlNetSock_Timeval_t
The SlNetSock_Timeval_t structure is used in the SLNETSOCK_OPSOCK_RCV_TIMEO and SLNETSOCK_OPSOCK_SND_...
Definition: slnetsock.h:658
int32_t(* ifDeleteContext)(uint16_t ifID, void **ifContext)
Definition: slnetif.h:210
int32_t(* sockListen)(int16_t sd, void *sdContext, int16_t backlog)
Definition: slnetif.h:188
int32_t SlNetIf_loadSecObj(uint16_t objType, char *objName, int16_t objNameLen, uint8_t *objBuff, int16_t objBuffLen, uint32_t ifBitmap)
Load/unload/replace a secure object into a network interface/stack.
int32_t SlNetIf_setState(uint16_t ifID, SlNetIfState_e ifState)
Set interface state.