MCPcopy Create free account
hub / github.com/NetSys/bess / DoRewrite

Method DoRewrite

core/modules/rewrite.cc:107–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107inline void Rewrite::DoRewrite(bess::PacketBatch *batch) {
108 size_t start = next_turn_;
109 const size_t cnt = batch->cnt();
110
111 for (size_t i = 0; i < cnt; i++) {
112 uint16_t size = template_size_[start + i];
113 bess::Packet *pkt = batch->pkts()[i];
114 char *ptr = pkt->buffer<char *>() + SNBUF_HEADROOM;
115
116 pkt->set_data_off(SNBUF_HEADROOM);
117 pkt->set_total_len(size);
118 pkt->set_data_len(size);
119
120 bess::utils::CopyInlined(ptr, templates_[start + i], size, true);
121 }
122
123 next_turn_ = jump_[start + cnt];
124}
125
126void Rewrite::ProcessBatch(Context *ctx, bess::PacketBatch *batch) {
127 if (num_templates_ == 1) {

Callers

nothing calls this directly

Calls 6

CopyInlinedFunction · 0.85
set_data_offMethod · 0.80
set_total_lenMethod · 0.80
set_data_lenMethod · 0.80
cntMethod · 0.45
pktsMethod · 0.45

Tested by

no test coverage detected