Lines Matching refs:interface

3 /* BPF socket interface code, originally contributed by Archie Cobbs. */
64 * Called by get_interface_list for each interface that's discovered.
65 * Opens a packet filter for each interface and adds it to the select
87 /* Set the BPF device to point at this interface. */
89 error("Can't attach interface %s to bpf device %s: %m",
96 error( "Can't set the VLAN PCP tag on interface %s: %m",
149 /* Open a BPF device and hang it on this interface... */
262 /* Open a BPF device and hang it on this interface... */
339 send_packet_priv(struct interface_info *interface, struct imsg_hdr *hdr, int fd)
364 assemble_hw_header(interface, buf, &bufp);
375 result = writev(interface->wfdesc, iov, 2);
389 result = sendmsg(interface->ufdesc, &msg, 0);
397 receive_packet(struct interface_info *interface, unsigned char *buf,
407 * interface. Sigh.
415 if (interface->rbuf_offset >= interface->rbuf_len) {
416 length = read(interface->rfdesc, interface->rbuf,
417 interface->rbuf_max);
420 interface->rbuf_offset = 0;
421 interface->rbuf_len = length;
429 if (interface->rbuf_len - interface->rbuf_offset <
431 interface->rbuf_offset = interface->rbuf_len;
436 memcpy(&hdr, &interface->rbuf[interface->rbuf_offset],
443 if (interface->rbuf_offset + hdr.bh_hdrlen + hdr.bh_caplen >
444 interface->rbuf_len) {
445 interface->rbuf_offset = interface->rbuf_len;
450 interface->rbuf_offset += hdr.bh_hdrlen;
458 interface->rbuf_offset =
459 BPF_WORDALIGN(interface->rbuf_offset +
465 offset = decode_hw_header(interface->rbuf,
466 interface->rbuf_offset, hfrom);
474 interface->rbuf_offset =
475 BPF_WORDALIGN(interface->rbuf_offset +
479 interface->rbuf_offset += offset;
483 offset = decode_udp_ip_header(interface->rbuf,
484 interface->rbuf_offset, from, NULL, hdr.bh_caplen);
488 interface->rbuf_offset =
489 BPF_WORDALIGN(interface->rbuf_offset +
493 interface->rbuf_offset += offset;
502 interface->rbuf_offset =
503 BPF_WORDALIGN(interface->rbuf_offset +
509 memcpy(buf, interface->rbuf + interface->rbuf_offset,
511 interface->rbuf_offset =
512 BPF_WORDALIGN(interface->rbuf_offset +