Lines Matching full:handle
65 rdmasniff_stats(pcap_t *handle, struct pcap_stat *stat) in rdmasniff_stats() argument
67 struct pcap_rdmasniff *priv = handle->priv; in rdmasniff_stats()
77 rdmasniff_cleanup(pcap_t *handle) in rdmasniff_cleanup() argument
79 struct pcap_rdmasniff *priv = handle->priv; in rdmasniff_cleanup()
90 pcapint_cleanup_live_common(handle); in rdmasniff_cleanup()
94 rdmasniff_post_recv(pcap_t *handle, uint64_t wr_id) in rdmasniff_post_recv() argument
96 struct pcap_rdmasniff *priv = handle->priv; in rdmasniff_post_recv()
101 sg_entry.addr = (uintptr_t) handle->buffer + RDMASNIFF_RECEIVE_SIZE * wr_id; in rdmasniff_post_recv()
113 rdmasniff_read(pcap_t *handle, int max_packets, pcap_handler callback, u_char *user) in rdmasniff_read() argument
115 struct pcap_rdmasniff *priv = handle->priv; in rdmasniff_read()
128 if (handle->break_loop) { in rdmasniff_read()
129 handle->break_loop = 0; in rdmasniff_read()
167 pkth.caplen = min(pkth.len, (u_int)handle->snapshot); in rdmasniff_read()
170 pktd = (u_char *) handle->buffer + wc.wr_id * RDMASNIFF_RECEIVE_SIZE; in rdmasniff_read()
172 if (handle->fcode.bf_insns == NULL || in rdmasniff_read()
173 pcapint_filter(handle->fcode.bf_insns, pktd, pkth.len, pkth.caplen)) { in rdmasniff_read()
179 rdmasniff_post_recv(handle, wc.wr_id); in rdmasniff_read()
181 if (handle->break_loop) { in rdmasniff_read()
182 handle->break_loop = 0; in rdmasniff_read()
194 pcap_t *handle = sp->pd; in rdmasniff_oneshot() local
195 struct pcap_rdmasniff *priv = handle->priv; in rdmasniff_oneshot()
203 rdmasniff_activate(pcap_t *handle) in rdmasniff_activate() argument
205 struct pcap_rdmasniff *priv = handle->priv; in rdmasniff_activate()
214 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
215 "Failed to open device %s", handle->opt.device); in rdmasniff_activate()
221 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
222 "Failed to alloc PD for device %s", handle->opt.device); in rdmasniff_activate()
228 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
229 "Failed to create comp channel for device %s", handle->opt.device); in rdmasniff_activate()
236 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
237 "Failed to create CQ for device %s", handle->opt.device); in rdmasniff_activate()
250 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
251 "Failed to create QP for device %s", handle->opt.device); in rdmasniff_activate()
259 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
260 "Failed to modify QP to INIT for device %s", handle->opt.device); in rdmasniff_activate()
267 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
268 "Failed to modify QP to RTR for device %s", handle->opt.device); in rdmasniff_activate()
278 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
279 "Failed to create flow for device %s", handle->opt.device); in rdmasniff_activate()
283 handle->bufsize = RDMASNIFF_NUM_RECEIVES * RDMASNIFF_RECEIVE_SIZE; in rdmasniff_activate()
284 handle->buffer = malloc(handle->bufsize); in rdmasniff_activate()
285 if (!handle->buffer) { in rdmasniff_activate()
286 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
287 "Failed to allocate receive buffer for device %s", handle->opt.device); in rdmasniff_activate()
293 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
294 "Failed to allocate oneshot buffer for device %s", handle->opt.device); in rdmasniff_activate()
298 priv->mr = ibv_reg_mr(priv->pd, handle->buffer, handle->bufsize, IBV_ACCESS_LOCAL_WRITE); in rdmasniff_activate()
300 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in rdmasniff_activate()
301 "Failed to register MR for device %s", handle->opt.device); in rdmasniff_activate()
307 rdmasniff_post_recv(handle, i); in rdmasniff_activate()
312 handle->linktype = DLT_INFINIBAND; in rdmasniff_activate()
314 handle->linktype = DLT_EN10MB; in rdmasniff_activate()
317 if (handle->snapshot <= 0 || handle->snapshot > RDMASNIFF_RECEIVE_SIZE) in rdmasniff_activate()
318 handle->snapshot = RDMASNIFF_RECEIVE_SIZE; in rdmasniff_activate()
320 handle->offset = 0; in rdmasniff_activate()
321 handle->read_op = rdmasniff_read; in rdmasniff_activate()
322 handle->stats_op = rdmasniff_stats; in rdmasniff_activate()
323 handle->cleanup_op = rdmasniff_cleanup; in rdmasniff_activate()
324 handle->setfilter_op = pcapint_install_bpf_program; in rdmasniff_activate()
325 handle->setdirection_op = NULL; in rdmasniff_activate()
326 handle->set_datalink_op = NULL; in rdmasniff_activate()
327 handle->getnonblock_op = pcapint_getnonblock_fd; in rdmasniff_activate()
328 handle->setnonblock_op = pcapint_setnonblock_fd; in rdmasniff_activate()
329 handle->oneshot_callback = rdmasniff_oneshot; in rdmasniff_activate()
330 handle->selectable_fd = priv->channel->fd; in rdmasniff_activate()