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

Method SendPackets

core/drivers/pcap.cc:109–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109int PCAPPort::SendPackets(queue_t, bess::Packet** pkts, int cnt) {
110 if (!pcap_handle_.is_initialized()) {
111 CHECK(0); // raise an error
112 }
113
114 int sent = 0;
115
116 while (sent < cnt) {
117 bess::Packet* sbuf = pkts[sent];
118
119 if (likely(sbuf->nb_segs() == 1)) {
120 pcap_handle_.SendPacket(sbuf->head_data<const u_char*>(),
121 sbuf->total_len());
122 } else if (sbuf->total_len() <= PCAP_SNAPLEN) {
123 unsigned char tx_pcap_data[PCAP_SNAPLEN];
124 GatherData(tx_pcap_data, sbuf);
125 pcap_handle_.SendPacket(tx_pcap_data, sbuf->total_len());
126 }
127
128 sent++;
129 }
130
131 bess::Packet::Free(pkts, sent);
132 return sent;
133}
134
135void PCAPPort::GatherData(unsigned char* data, bess::Packet* pkt) {
136 while (pkt) {

Callers

nothing calls this directly

Calls 4

is_initializedMethod · 0.80
nb_segsMethod · 0.80
SendPacketMethod · 0.80
total_lenMethod · 0.80

Tested by

no test coverage detected