41 fnNetSimError(
"Unknow rpl msg code %d in %s\n", code, __FUNCTION__);
87 ret = (
void**)
realloc(ret, (
c + 1) *
sizeof(
void*));
108 option->
type, __FUNCTION__);
117 memcpy(ret, option,
sizeof* ret);
119 switch (option->
type)
129 option->
type, __FUNCTION__);
149 strcpy(str,
"Consistency_check");
155 strcpy(str,
"DAO-ACK");
221 memcpy(ret, opt,
sizeof* ret);
248 if (include_dodag_config)
278 if (include_dodag_config)
317 memcpy(new_dio, dio,
sizeof* new_dio);
320 new_dio->
Base = new_base;
321 memcpy(new_base, dio->
Base,
sizeof* new_base);
392 memcpy(ret, target,
sizeof* ret);
421 memset(&pevent, 0,
sizeof pevent);
void rpl_process_dao_msg()
void rpl_process_dio_msg()
void rpl_process_dis_msg()
NETSIM_IPAddress IP_COPY(NETSIM_IPAddress ip)
NETSIM_IPAddress GET_BROADCAST_IP(int type)
void IP_FREE(NETSIM_IPAddress ip)
#define fnNetSimError(x,...)
double fnGetPacketSize(NetSim_PACKET *pstruData)
void add_dest_to_packet(NetSim_PACKET *packet, NETSIM_ID dest)
bool rpl_node_is_joined(PRPL_NODE r)
bool rpl_node_is_root(PRPL_NODE r)
bool rpl_node_is_poisoning(PRPL_NODE r)
#define RPL_DEFAULT_DAG_PREF
seq_num_mapping_t * seq_num_mapping_get(NETSIM_IPAddress dodag_id)
static PRPL_DAO_BASE create_dao_base(PRPL_NODE rpl)
static NetSim_PACKET * create_joined_dio_message(NETSIM_ID ndevId, double time, bool include_dodag_config)
static void set_option_in_msg(NetSim_PACKET *packet, RPL_OPTION_TYPE type, void *option)
static double get_rpl_packet_size_fixed(RPL_CTRL_MSG_CODE code)
void * get_option_from_msg(PRPL_CTRL_MSG msg, RPL_OPTION_TYPE type)
static PRPL_CTRL_MSG get_icmp_rpl_msg(RPL_CTRL_MSG_CODE code)
NetSim_PACKET * create_dis_message(NETSIM_ID ndevid, double time)
static void rpl_get_packet_type_sz(char *str, RPL_CTRL_MSG_CODE code)
static void rpl_rpl_target_option_destroy(PRPL_TARGET_OPTION target)
void rpl_dio_pdu_free(PRPL_CTRL_MSG dio)
static void rpl_dodag_config_option_destroy(PRPL_DODAG_CONFIG_OPTION opt)
void rpl_process_ctrl_msg()
static NetSim_PACKET * create_rpl_ctrl_msg(RPL_CTRL_MSG_CODE code, double time, NETSIM_ID src, NETSIM_ID dest)
NetSim_PACKET * create_current_dio_message(NETSIM_ID ndevId, double time, bool include_dodag_config)
static PRPL_DODAG_CONFIG_OPTION rpl_dodag_config_option_copy(PRPL_DODAG_CONFIG_OPTION opt)
static PRPL_DIO_BASE create_dio_base()
NetSim_PACKET * create_root_dio_message(NETSIM_ID ndevId, double time, bool include_dodag_config, bool include_seq_num)
void create_and_add_rpl_target_option(NetSim_PACKET *dao_pdu, UINT8 prefix_len, NETSIM_IPAddress dest)
PRPL_OPTION rpl_option_copy(PRPL_OPTION option)
void rpl_node_send_msg(NETSIM_ID ndevid, NetSim_PACKET *packet)
void ** get_all_option_from_msg(PRPL_CTRL_MSG msg, RPL_OPTION_TYPE type, UINT *count)
static PRPL_DIS_BASE create_dis_base(PRPL_NODE rpl)
NetSim_PACKET * create_dao_message(NETSIM_ID ndevid, double time, NETSIM_ID parent)
void rpl_option_destroy(PRPL_OPTION option)
static PRPL_DODAG_CONFIG_OPTION create_dodag_config_option()
PRPL_CTRL_MSG rpl_dio_pdu_duplicate(PRPL_CTRL_MSG dio)
static PRPL_TARGET_OPTION rpl_rpl_target_option_copy(PRPL_TARGET_OPTION target)
struct stru_rpl_option * PRPL_OPTION
@ Destination_Advertisement_Object_Acknowledgment
@ DODAG_Information_Object
@ DODAG_Information_Solicitation
@ Destination_Advertisement_Object
@ RPLOPTION_DODAGConfiguration
#define RPL_CTRL_MSG_SIZE_FIXED
struct stru_rpl_DIS_Base * PRPL_DIS_BASE
#define RPL_DAOACK_BASE_SIZE
struct stru_rpl_target * PRPL_TARGET_OPTION
struct stru_rpl_dio_base * PRPL_DIO_BASE
#define GET_PRPL_CTRL_MSG(packet)
#define RPL_DIS_BASE_SIZE
struct stru_rpl_ctrl_message * PRPL_CTRL_MSG
struct stru_rpl_dao_base * PRPL_DAO_BASE
#define GET_RPL_CTRL_PACKET_TYPE(code)
struct stru_dodag_config_option * PRPL_DODAG_CONFIG_OPTION
#define RPL_DAO_BASE_SIZE
#define SET_BASE_IN_MSG(packet, b)
#define RPL_DIO_BASE_SIZE
enum enum_rpl_option_type RPL_OPTION_TYPE
#define DEVICE_TYPE(DeviceId)
#define DEVICE_NWADDRESS(DeviceId, InterfaceId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Packet_CreatePacket(layer)
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
NETWORK_LAYER_PROTOCOL nRoutingProtocol
void * Packet_RoutingProtocol
NETSIM_IPAddress szGatewayIP
NETSIM_IPAddress szDestIP
NETSIM_IPAddress szSourceIP
char szPacketType[MAX_PACKET_TYPE_LEN]
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
unsigned int nControlDataType
UINT16 MinHopRankIncrease
UINT8 dio_redundancy_constant
UINT8 dio_interval_doublings
UINT8 dio_interval_doublings
UINT8 dio_redundancy_constant
NETSIM_IPAddress Traget_Prefix