Lines Matching refs:iface

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