Lines Matching full: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. */ in if_register_bpf()
89 error("Can't attach interface %s to bpf device %s: %m", in if_register_bpf()
96 error( "Can't set the VLAN PCP tag on interface %s: %m", in if_register_bpf()
149 /* Open a BPF device and hang it on this interface... */ in if_register_send()
262 /* Open a BPF device and hang it on this interface... */ in if_register_receive()
339 send_packet_priv(struct interface_info *interface, struct imsg_hdr *hdr, int fd) in send_packet_priv() argument
364 assemble_hw_header(interface, buf, &bufp); in send_packet_priv()
375 result = writev(interface->wfdesc, iov, 2); in send_packet_priv()
389 result = sendmsg(interface->ufdesc, &msg, 0); in send_packet_priv()
397 receive_packet(struct interface_info *interface, unsigned char *buf, in receive_packet() argument
407 * interface. Sigh. in receive_packet()
415 if (interface->rbuf_offset >= interface->rbuf_len) { in receive_packet()
416 length = read(interface->rfdesc, interface->rbuf, in receive_packet()
417 interface->rbuf_max); in receive_packet()
420 interface->rbuf_offset = 0; in receive_packet()
421 interface->rbuf_len = length; in receive_packet()
429 if (interface->rbuf_len - interface->rbuf_offset < in receive_packet()
431 interface->rbuf_offset = interface->rbuf_len; in receive_packet()
436 memcpy(&hdr, &interface->rbuf[interface->rbuf_offset], in receive_packet()
443 if (interface->rbuf_offset + hdr.bh_hdrlen + hdr.bh_caplen > in receive_packet()
444 interface->rbuf_len) { in receive_packet()
445 interface->rbuf_offset = interface->rbuf_len; in receive_packet()
450 interface->rbuf_offset += hdr.bh_hdrlen; in receive_packet()
458 interface->rbuf_offset = in receive_packet()
459 BPF_WORDALIGN(interface->rbuf_offset + in receive_packet()
465 offset = decode_hw_header(interface->rbuf, in receive_packet()
466 interface->rbuf_offset, hfrom); in receive_packet()
474 interface->rbuf_offset = in receive_packet()
475 BPF_WORDALIGN(interface->rbuf_offset + in receive_packet()
479 interface->rbuf_offset += offset; in receive_packet()
483 offset = decode_udp_ip_header(interface->rbuf, in receive_packet()
484 interface->rbuf_offset, from, NULL, hdr.bh_caplen); in receive_packet()
488 interface->rbuf_offset = in receive_packet()
489 BPF_WORDALIGN(interface->rbuf_offset + in receive_packet()
493 interface->rbuf_offset += offset; in receive_packet()
502 interface->rbuf_offset = in receive_packet()
503 BPF_WORDALIGN(interface->rbuf_offset + in receive_packet()
509 memcpy(buf, interface->rbuf + interface->rbuf_offset, in receive_packet()
511 interface->rbuf_offset = in receive_packet()
512 BPF_WORDALIGN(interface->rbuf_offset + in receive_packet()