Skip to content
Extraits de code Groupes Projets
Valider ad65a4bb rédigé par Tom Barbette's avatar Tom Barbette
Parcourir les fichiers

Fix NumberPacket and clone implem

parent ee1989a8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -44,7 +44,7 @@ int NumberPacket::configure(Vector<String> &conf, ErrorHandler *errh) { ...@@ -44,7 +44,7 @@ int NumberPacket::configure(Vector<String> &conf, ErrorHandler *errh) {
return 0; return 0;
} }
inline Packet* NumberPacket::smaction(Packet *p) { inline Packet* NumberPacket::simple_action(Packet *p) {
WritablePacket *wp = nullptr; WritablePacket *wp = nullptr;
if (p->length() >= (unsigned)_offset + _size_of_number) { if (p->length() >= (unsigned)_offset + _size_of_number) {
wp = p->uniqueify(); wp = p->uniqueify();
...@@ -67,22 +67,6 @@ inline Packet* NumberPacket::smaction(Packet *p) { ...@@ -67,22 +67,6 @@ inline Packet* NumberPacket::smaction(Packet *p) {
return wp; return wp;
} }
Packet*
NumberPacket::simple_action(Packet *p) {
return smaction(p);
}
#if HAVE_BATCH
PacketBatch*
NumberPacket::simple_action_batch(PacketBatch *batch) {
FOR_EACH_PACKET_SAFE(batch,p) {
p = smaction(p);
}
return batch;
}
#endif
String String
NumberPacket::read_handler(Element *e, void *thunk) NumberPacket::read_handler(Element *e, void *thunk)
{ {
......
...@@ -30,7 +30,7 @@ acounting for this format. Defaults to false. ...@@ -30,7 +30,7 @@ acounting for this format. Defaults to false.
RecordTimestamp, TimestampDiff */ RecordTimestamp, TimestampDiff */
class NumberPacket : public BatchElement { class NumberPacket : public SimpleElement<NumberPacket> {
public: public:
NumberPacket() CLICK_COLD; NumberPacket() CLICK_COLD;
~NumberPacket() CLICK_COLD; ~NumberPacket() CLICK_COLD;
...@@ -43,9 +43,6 @@ public: ...@@ -43,9 +43,6 @@ public:
int configure(Vector<String> &, ErrorHandler *) CLICK_COLD; int configure(Vector<String> &, ErrorHandler *) CLICK_COLD;
Packet *simple_action(Packet *) override; Packet *simple_action(Packet *) override;
#if HAVE_BATCH
PacketBatch *simple_action_batch(PacketBatch *) override;
#endif
static inline uint64_t read_number_of_packet( static inline uint64_t read_number_of_packet(
const Packet *p, int offset, bool net_order = false) { const Packet *p, int offset, bool net_order = false) {
......
...@@ -1063,10 +1063,14 @@ Packet::clone(bool fast) ...@@ -1063,10 +1063,14 @@ Packet::clone(bool fast)
return duplicate(0,0); return duplicate(0,0);
} }
# endif # endif
Packet* p = reinterpret_cast<Packet *>( auto pool = DPDKDevice::get_mpool(rte_socket_id());
rte_pktmbuf_clone(mb(), DPDKDevice::get_mpool(rte_socket_id()))); rte_mbuf* m = rte_pktmbuf_alloc(pool);
if (likely(!p)) if (unlikely(!m))
return 0; return 0;
rte_pktmbuf_attach(m,mb());
m->nb_segs = 1;
m->pkt_len = mb()->pkt_len;
Packet* p = reinterpret_cast<Packet*>(m);
p->copy_annotations(this,true); p->copy_annotations(this,true);
p->copy_headers(this); p->copy_headers(this);
return p; return p;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter