diff options
Diffstat (limited to 'src/bp_sim.cpp')
-rwxr-xr-x | src/bp_sim.cpp | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/bp_sim.cpp b/src/bp_sim.cpp index 48b4a158..47047831 100755 --- a/src/bp_sim.cpp +++ b/src/bp_sim.cpp @@ -1294,7 +1294,9 @@ bool CPacketIndication::ConvertPacketToIpv6InPlace(CCapPktRaw * pkt, void CPacketIndication::ProcessPacket(CPacketParser *parser, CCapPktRaw * pkt){ _ProcessPacket(parser,pkt); - UpdateOffsets(); /* update fast offsets */ + if ( m_desc.IsValidPkt() ){ + UpdateOffsets(); /* update fast offsets */ + } } @@ -2119,7 +2121,13 @@ int CCapFileFlowInfo::load_cap_file(std::string cap_file,uint16_t _id,uint8_t pl } } + }else{ + printf("ERROR packet %d is not supported, should be IP(0x0800)/TCP/UDP format try to convert it using Wireshark !\n",cnt); + exit(-1); } + }else{ + printf("ERROR packet %d is not supported, should be IP(0x0800)/TCP/UDP format try to convert it using Wireshark !\n",cnt); + exit(-1); } } @@ -4449,6 +4457,7 @@ int CErfIF::send_node(CGenNode * node){ CFlowPktInfo * lp=node->m_pkt_info; rte_mbuf_t * m=lp->generate_new_mbuf(node); + fill_pkt(m_raw,m); CPktNsecTimeStamp t_c(node->m_time); m_raw->time_nsec = t_c.m_time_nsec; @@ -4630,6 +4639,7 @@ void CCPortLatency::reset(){ m_tx_pkt_err=0; m_tx_pkt_ok =0; m_pkt_ok=0; + m_rx_check=0; m_no_magic=0; m_unsup_prot=0; m_no_id=0; @@ -5441,10 +5451,11 @@ void on_node_last(uint8_t plugin_id,CGenNode * node){ } rte_mbuf_t * on_node_generate_mbuf(uint8_t plugin_id,CGenNode * node,CFlowPktInfo * pkt_info){ - if (CPluginCallback::callback) { - CPluginCallback::callback->on_node_generate_mbuf(plugin_id,node,pkt_info); - } - + rte_mbuf_t * m; + assert(CPluginCallback::callback); + m=CPluginCallback::callback->on_node_generate_mbuf(plugin_id,node,pkt_info); + assert(m); + return(m); } @@ -6280,22 +6291,25 @@ rte_mbuf_t * CPluginCallbackSimple::rtsp_plugin(uint8_t plugin_id,CGenNode * /* replace the tuples */ rte_mbuf_t * CPluginCallbackSimple::on_node_generate_mbuf(uint8_t plugin_id,CGenNode * node,CFlowPktInfo * pkt_info){ + + rte_mbuf_t * m=NULL; switch (plugin_id) { case mpRTSP: - rtsp_plugin(plugin_id,node,pkt_info); + m=rtsp_plugin(plugin_id,node,pkt_info); break; case mpSIP_VOICE: - sip_voice_plugin(plugin_id,node,pkt_info); + m=sip_voice_plugin(plugin_id,node,pkt_info); break; case mpDYN_PYLOAD: - dyn_pyload_plugin(plugin_id,node,pkt_info); + m=dyn_pyload_plugin(plugin_id,node,pkt_info); break; case mpAVL_HTTP_BROWSIN: - http_plugin(plugin_id,node,pkt_info); + m=http_plugin(plugin_id,node,pkt_info); break; default: assert(0); } + return (m); } |