📄 ramimo_pktgen.pr.c
字号:
#ifdef PKTGEN_OFF
printf("PKTGEN_OFF\n");
printf("Destination Node User ID = %d\n", destuserid);
#endif
op_prg_odb_bkpt("PKTGENOFF");
op_prg_odb_bkpt("TEST");
}
FSM_PROFILE_SECTION_OUT (state1_enter_exec)
/** blocking after enter executives of unforced state. **/
FSM_EXIT (3,"ramimo_pktgen")
/** state (OFF) exit executives **/
FSM_STATE_EXIT_UNFORCED (1, "OFF", "ramimo_pktgen [OFF exit execs]")
FSM_PROFILE_SECTION_IN ("ramimo_pktgen [OFF exit execs]", state1_exit_exec)
{
}
FSM_PROFILE_SECTION_OUT (state1_exit_exec)
/** state (OFF) transition processing **/
FSM_TRANSIT_ONLY ((GEN_PKT), 2, state2_enter_exec, ;, OFF, "GEN_PKT", "", "OFF", "PKT_GEN")
/*---------------------------------------------------------*/
/** state (PKT_GEN) enter executives **/
FSM_STATE_ENTER_FORCED (2, "PKT_GEN", state2_enter_exec, "ramimo_pktgen [PKT_GEN enter execs]")
FSM_PROFILE_SECTION_IN ("ramimo_pktgen [PKT_GEN enter execs]", state2_enter_exec)
{
/*Create a DATA packet*/
pktptr = op_pk_create_fmt("DATA_pkt");
/*Set the fields of the packet*/
op_pk_total_size_set(pktptr, datapktsize);
op_pk_nfd_set(pktptr, "SRC", srcuserid);
op_pk_nfd_set(pktptr, "DEST", destuserid);
op_pk_nfd_set(pktptr, "number", sequencenum);
op_pk_nfd_set(pktptr, "time", op_pk_creation_time_get(pktptr));
/*Increment the sequence number*/
sequencenum = sequencenum + 1.0;
#ifdef PKTGEN_PKT_GEN
printf("PKTGEN_PKT_GEN\n");
printf("Packet Size = %d\n", op_pk_total_size_get(pktptr) );
op_pk_nfd_get(pktptr, "SRC", &tempint);
printf("Packet Source Node User ID = %d\n", tempint);
op_pk_nfd_get(pktptr, "DEST", &tempint);
printf("Packet Destination Node User ID = %d\n", tempint);
op_pk_nfd_get(pktptr, "number", &tempdouble);
printf("Packet Sequence Number = %lf\n", tempdouble);
op_pk_nfd_get(pktptr, "time", &tempdouble);
printf("Packet Creation Time = %lf\n", tempdouble);
#endif
/*Send the packet onto the output stream*/
op_pk_send(pktptr, OUT_STRM);
op_prg_odb_bkpt("PKTGEN");
}
FSM_PROFILE_SECTION_OUT (state2_enter_exec)
/** state (PKT_GEN) exit executives **/
FSM_STATE_EXIT_FORCED (2, "PKT_GEN", "ramimo_pktgen [PKT_GEN exit execs]")
FSM_PROFILE_SECTION_IN ("ramimo_pktgen [PKT_GEN exit execs]", state2_exit_exec)
{
}
FSM_PROFILE_SECTION_OUT (state2_exit_exec)
/** state (PKT_GEN) transition processing **/
FSM_TRANSIT_FORCE (1, state1_enter_exec, ;, "default", "", "PKT_GEN", "OFF")
/*---------------------------------------------------------*/
}
FSM_EXIT (0,"ramimo_pktgen")
}
}
void
ramimo_pktgen_diag (OP_SIM_CONTEXT_ARG_OPT)
{
/* No Diagnostic Block */
}
void
ramimo_pktgen_terminate (OP_SIM_CONTEXT_ARG_OPT)
{
#if !defined (VOSD_NO_FIN)
int _op_block_origin = __LINE__;
#endif
FIN_MT (ramimo_pktgen_terminate ())
Vos_Poolmem_Dealloc_MT (OP_SIM_CONTEXT_THREAD_INDEX_COMMA pr_state_ptr);
FOUT
}
/* Undefine shortcuts to state variables to avoid */
/* syntax error in direct access to fields of */
/* local variable prs_ptr in ramimo_pktgen_svar function. */
#undef userload
#undef datarate
#undef proc_id
#undef node_id
#undef genpktevent
#undef random_node
#undef datapktsize
#undef packetformat
#undef intnumnodes
#undef dblnumnodes
#undef destuserid
#undef mainprocid
#undef tx_id
#undef txcomp_id
#undef txch_id
#undef timebetweenpkts
#undef sequencenum
#undef srcuserid
#undef scenario
#undef traffictype
#undef FIN_PREAMBLE_DEC
#undef FIN_PREAMBLE_CODE
#define FIN_PREAMBLE_DEC
#define FIN_PREAMBLE_CODE
VosT_Obtype
ramimo_pktgen_init (int * init_block_ptr)
{
#if !defined (VOSD_NO_FIN)
int _op_block_origin = 0;
#endif
VosT_Obtype obtype = OPC_NIL;
FIN_MT (ramimo_pktgen_init (init_block_ptr))
Vos_Define_Object (&obtype, "proc state vars (ramimo_pktgen)",
sizeof (ramimo_pktgen_state), 0, 20);
*init_block_ptr = 0;
FRET (obtype)
}
VosT_Address
ramimo_pktgen_alloc (VOS_THREAD_INDEX_ARG_COMMA VosT_Obtype obtype, int init_block)
{
#if !defined (VOSD_NO_FIN)
int _op_block_origin = 0;
#endif
ramimo_pktgen_state * ptr;
FIN_MT (ramimo_pktgen_alloc (obtype))
ptr = (ramimo_pktgen_state *)Vos_Alloc_Object_MT (VOS_THREAD_INDEX_COMMA obtype);
if (ptr != OPC_NIL)
ptr->_op_current_block = init_block;
FRET ((VosT_Address)ptr)
}
void
ramimo_pktgen_svar (void * gen_ptr, const char * var_name, void ** var_p_ptr)
{
ramimo_pktgen_state *prs_ptr;
FIN_MT (ramimo_pktgen_svar (gen_ptr, var_name, var_p_ptr))
if (var_name == OPC_NIL)
{
*var_p_ptr = (void *)OPC_NIL;
FOUT
}
prs_ptr = (ramimo_pktgen_state *)gen_ptr;
if (strcmp ("userload" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->userload);
FOUT
}
if (strcmp ("datarate" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->datarate);
FOUT
}
if (strcmp ("proc_id" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->proc_id);
FOUT
}
if (strcmp ("node_id" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->node_id);
FOUT
}
if (strcmp ("genpktevent" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->genpktevent);
FOUT
}
if (strcmp ("random_node" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->random_node);
FOUT
}
if (strcmp ("datapktsize" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->datapktsize);
FOUT
}
if (strcmp ("packetformat" , var_name) == 0)
{
*var_p_ptr = (void *) (prs_ptr->packetformat);
FOUT
}
if (strcmp ("intnumnodes" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->intnumnodes);
FOUT
}
if (strcmp ("dblnumnodes" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->dblnumnodes);
FOUT
}
if (strcmp ("destuserid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->destuserid);
FOUT
}
if (strcmp ("mainprocid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->mainprocid);
FOUT
}
if (strcmp ("tx_id" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->tx_id);
FOUT
}
if (strcmp ("txcomp_id" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->txcomp_id);
FOUT
}
if (strcmp ("txch_id" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->txch_id);
FOUT
}
if (strcmp ("timebetweenpkts" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->timebetweenpkts);
FOUT
}
if (strcmp ("sequencenum" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->sequencenum);
FOUT
}
if (strcmp ("srcuserid" , var_name) == 0)
{
*var_p_ptr = (void *) (&prs_ptr->srcuserid);
FOUT
}
if (strcmp ("scenario" , var_name) == 0)
{
*var_p_ptr = (void *) (prs_ptr->scenario);
FOUT
}
if (strcmp ("traffictype" , var_name) == 0)
{
*var_p_ptr = (void *) (prs_ptr->traffictype);
FOUT
}
*var_p_ptr = (void *)OPC_NIL;
FOUT
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -