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

Method Dump

core/packet.cc:140–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

138}
139
140std::string Packet::Dump() {
141 std::ostringstream dump;
142 Packet *pkt;
143 uint32_t dump_len = total_len();
144 uint32_t nb_segs;
145 uint32_t len;
146
147 dump << "refcnt chain: ";
148 for (pkt = this; pkt; pkt = pkt->next_) {
149 dump << pkt->refcnt_ << ' ';
150 }
151 dump << std::endl;
152
153 dump << "pool chain: ";
154 for (pkt = this; pkt; pkt = pkt->next_) {
155 int i;
156
157 dump << pkt->pool_ << "(";
158
159 for (i = 0; i < RTE_MAX_NUMA_NODES; i++) {
160 if (pframe_pool[i] == pkt->pool_) {
161 dump << "P" << i;
162 }
163 }
164 dump << ") ";
165 }
166 dump << std::endl;
167
168 dump << "dump packet at " << this << ", phys=" << buf_physaddr_
169 << ", buf_len=" << buf_len_ << std::endl;
170 dump << " pkt_len=" << pkt_len_ << ", ol_flags=" << std::hex
171 << mbuf_.ol_flags << ", nb_segs=" << std::dec << nb_segs_
172 << ", in_port=" << mbuf_.port << std::endl;
173
174 nb_segs = nb_segs_;
175 pkt = this;
176 while (pkt && nb_segs != 0) {
177 __rte_mbuf_sanity_check(&pkt->mbuf_, 0);
178
179 dump << " segment at " << pkt << ", data=" << pkt->head_data()
180 << ", data_len=" << std::dec << unsigned{data_len_} << std::endl;
181
182 len = total_len();
183 if (len > data_len_) {
184 len = data_len_;
185 }
186
187 if (len != 0) {
188 dump << HexDump(head_data(), len);
189 }
190
191 dump_len -= len;
192 pkt = pkt->next_;
193 nb_segs--;
194 }
195
196 return dump.str();
197}

Callers

nothing calls this directly

Calls 2

HexDumpFunction · 0.85
head_dataMethod · 0.80

Tested by

no test coverage detected