Lines Matching refs:iface
53 open_socket(struct interface *iface, int protocol)
90 strlcpy(ifr.ifr_name, iface->name, sizeof(ifr.ifr_name));
97 if (iface->buffer_size != (size_t)buf_len) {
98 free(iface->buffer);
99 iface->buffer_size = buf_len;
100 iface->buffer = xmalloc(buf_len);
101 iface->buffer_len = iface->buffer_pos = 0;
114 fdp = &iface->arp_fd;
118 fdp = &iface->raw_fd;
130 free(iface->buffer);
131 iface->buffer = NULL;
137 send_raw_packet(const struct interface *iface, int protocol,
152 fd = iface->arp_fd;
154 fd = iface->raw_fd;
161 get_raw_packet(struct interface *iface, int protocol,
170 fd = iface->arp_fd;
172 fd = iface->raw_fd;
175 if (iface->buffer_len == 0) {
176 bytes = rump_sys_read(fd, iface->buffer, iface->buffer_size);
181 iface->buffer_len = bytes;
182 iface->buffer_pos = 0;
185 memcpy(&packet, iface->buffer + iface->buffer_pos,
189 if (iface->buffer_pos + packet.bh_caplen + packet.bh_hdrlen >
190 iface->buffer_len)
192 payload = iface->buffer + packet.bh_hdrlen + ETHER_HDR_LEN;
198 iface->buffer_pos += BPF_WORDALIGN(packet.bh_hdrlen +
200 if (iface->buffer_pos >= iface->buffer_len)
201 iface->buffer_len = iface->buffer_pos = 0;