Lines Matching refs:md

760 			handle->md.mondevice = strdup(mondevice);
805 strncpy(ifr.ifr_name, handle->md.mondevice, sizeof(ifr.ifr_name));
809 handle->md.mondevice, strerror(errno));
811 handle->md.mondevice);
819 handle->md.mondevice, strerror(errno));
821 handle->md.mondevice);
835 handle->md.must_do_on_close |= MUST_DELETE_MONIF;
1014 if (handle->md.must_do_on_close != 0) {
1019 if (handle->md.must_do_on_close & MUST_CLEAR_PROMISC) {
1030 strncpy(ifr.ifr_name, handle->md.device,
1037 handle->md.device, strerror(errno));
1051 handle->md.device,
1059 if (handle->md.must_do_on_close & MUST_DELETE_MONIF) {
1060 ret = nl80211_init(handle, &nlstate, handle->md.device);
1063 handle->md.device, handle->md.mondevice);
1070 handle->md.mondevice, handle->errbuf);
1076 if (handle->md.must_do_on_close & MUST_CLEAR_RFMON) {
1094 strncpy(ifr.ifr_name, handle->md.device,
1108 strncpy(ireq.ifr_ifrn.ifrn_name, handle->md.device,
1112 ireq.u.mode = handle->md.oldmode;
1120 handle->md.device, strerror(errno));
1133 handle->md.device, strerror(errno));
1146 if (handle->md.mondevice != NULL) {
1147 free(handle->md.mondevice);
1148 handle->md.mondevice = NULL;
1150 if (handle->md.device != NULL) {
1151 free(handle->md.device);
1152 handle->md.device = NULL;
1198 handle->md.device = strdup(device);
1199 if (handle->md.device == NULL) {
1211 handle->md.proc_dropped = linux_if_drops(handle->md.device);
1368 if (handle->md.cooked)
1463 if (!handle->md.sock_packet) {
1476 if (handle->md.ifindex != -1 &&
1477 from.sll_ifindex != handle->md.ifindex)
1493 if (from.sll_ifindex == handle->md.lo_ifindex)
1516 if (handle->md.cooked) {
1535 if (handle->md.vlan_offset != -1) {
1557 if (len < (unsigned int) handle->md.vlan_offset)
1561 memmove(bp, bp + VLAN_TAG_LEN, handle->md.vlan_offset);
1563 tag = (struct vlan_tag *)(bp + handle->md.vlan_offset);
1610 if (!handle->md.use_bpf && handle->fcode.bf_insns) {
1662 * We keep the count in "md.packets_read", and use that for
1665 * the kernel, we use "md.stat.ps_recv" and "md.stat.ps_drop"
1668 * increment "md.stat.ps_recv" here, that means it will
1672 handle->md.packets_read++;
1686 if (!handle->md.sock_packet) {
1688 if (handle->md.ifindex == -1) {
1698 if (handle->md.cooked) {
1746 if_dropped = handle->md.proc_dropped;
1747 handle->md.proc_dropped = linux_if_drops(handle->md.device);
1748 handle->md.stat.ps_ifdrop += (handle->md.proc_dropped - if_dropped);
1804 handle->md.stat.ps_recv += kstats.tp_packets;
1805 handle->md.stat.ps_drop += kstats.tp_drops;
1806 *stats = handle->md.stat;
1844 * "md.packets_read", for reasons described in the comment
1850 stats->ps_recv = handle->md.packets_read;
1852 stats->ps_ifdrop = handle->md.stat.ps_ifdrop;
2257 handle->md.use_bpf = 0;
2346 handle->md.use_bpf = 1;
2371 if (!handle->md.use_bpf)
2403 if (!handle->md.sock_packet) {
2739 //handle->md.cooked = 1;
2834 handle->md.sock_packet = 0;
2839 * "md.lo_ifindex" to -1.
2847 handle->md.lo_ifindex = iface_get_id(sock_fd, "lo", handle->errbuf);
2862 handle->md.cooked = 0;
2892 if (handle->md.mondevice != NULL)
2893 device = handle->md.mondevice;
2940 handle->md.cooked = 1;
2978 handle->md.ifindex = iface_get_id(sock_fd, device,
2980 if (handle->md.ifindex == -1) {
2985 if ((err = iface_bind(sock_fd, handle->md.ifindex,
3007 handle->md.cooked = 1;
3017 handle->md.ifindex = -1;
3044 mr.mr_ifindex = handle->md.ifindex;
3083 if (handle->md.cooked) {
3095 handle->md.vlan_offset = 2 * ETH_ALEN;
3099 handle->md.vlan_offset = 14;
3103 handle->md.vlan_offset = -1; /* unknown */
3141 handle->md.oneshot_buffer = malloc(handle->snapshot);
3142 if (handle->md.oneshot_buffer == NULL) {
3156 free(handle->md.oneshot_buffer);
3166 free(handle->md.oneshot_buffer);
3174 free(handle->md.oneshot_buffer);
3218 handle->md.tp_version = TPACKET_V1;
3219 handle->md.tp_hdrlen = sizeof(struct tpacket_hdr);
3235 handle->md.tp_hdrlen = val;
3245 handle->md.tp_version = TPACKET_V2;
3380 tp_hdrlen = TPACKET_ALIGN(handle->md.tp_hdrlen) + sizeof(struct sockaddr_ll) ;
3549 handle->md.mmapbuflen = req.tp_block_nr * req.tp_block_size;
3550 handle->md.mmapbuf = mmap(0, handle->md.mmapbuflen,
3552 if (handle->md.mmapbuf == MAP_FAILED) {
3578 void *base = &handle->md.mmapbuf[i*req.tp_block_size];
3601 if (handle->md.mmapbuf) {
3603 munmap(handle->md.mmapbuf, handle->md.mmapbuflen);
3604 handle->md.mmapbuf = NULL;
3632 memcpy(sp->pd->md.oneshot_buffer, bytes, h->caplen);
3633 *sp->pkt = sp->pd->md.oneshot_buffer;
3640 if (handle->md.oneshot_buffer != NULL) {
3641 free(handle->md.oneshot_buffer);
3642 handle->md.oneshot_buffer = NULL;
3652 return (p->md.timeout<0);
3663 if (p->md.timeout >= 0) {
3668 p->md.timeout = ~p->md.timeout;
3671 if (p->md.timeout < 0) {
3672 p->md.timeout = ~p->md.timeout;
3684 switch (handle->md.tp_version) {
3721 if (handle->md.timeout == 0)
3723 else if (handle->md.timeout > 0)
3724 timeout = handle->md.timeout; /* block for that amount of time */
3812 switch (handle->md.tp_version) {
3832 handle->md.tp_version);
3848 * In such case md.use_bpf is used as a counter for the
3854 run_bpf = (!handle->md.use_bpf) ||
3855 ((handle->md.use_bpf>1) && handle->md.use_bpf--);
3864 sll = (void *)h.raw + TPACKET_ALIGN(handle->md.tp_hdrlen);
3872 if (sll->sll_ifindex == handle->md.lo_ifindex)
3896 if (handle->md.cooked) {
3916 TPACKET_ALIGN(handle->md.tp_hdrlen) +
3940 if ((handle->md.tp_version == TPACKET_V2) &&
3946 handle->md.vlan_offset != -1 &&
3947 tp_snaplen >= (unsigned int) handle->md.vlan_offset) {
3951 memmove(bp, bp + VLAN_TAG_LEN, handle->md.vlan_offset);
3953 tag = (struct vlan_tag *)(bp + handle->md.vlan_offset);
3977 handle->md.packets_read++;
3981 switch (handle->md.tp_version) {
4022 if (!handle->md.use_bpf)
4040 handle->md.use_bpf = 1 + (handle->cc - n);
4522 handle->md.oldmode = ireq.u.mode;
4549 handle->md.must_do_on_close |= MUST_CLEAR_RFMON;
4796 handle->md.must_do_on_close |= MUST_CLEAR_RFMON;
4985 handle->md.sock_packet = 1;
4988 handle->md.cooked = 0;
5057 handle->md.must_do_on_close |= MUST_CLEAR_PROMISC;
5143 handle->md.vlan_offset = -1; /* unknown */
5315 if (handle->md.cooked) {