Lines Matching +full:chan +full:- +full:name

3 /*-
4 * SPDX-License-Identifier: BSD-2-Clause
56 channel_t *chan; in tap_init() local
62 if (fd == -1) { in tap_init()
68 if (ioctl(fd, TAPGIFNAME, &ifr) == -1) { in tap_init()
69 log_err("Could not get interface name: %m"); in tap_init()
74 if (s == -1) { in tap_init()
83 if (ioctl(s, SIOCSIFLLADDR, &ifr) == -1) { in tap_init()
88 if (ioctl(s, SIOCGIFFLAGS, &ifr) == -1) { in tap_init()
96 if (ioctl(s, SIOCSIFFLAGS, &ifr) == -1) { in tap_init()
107 chan = channel_alloc(); in tap_init()
108 if (chan == NULL) in tap_init()
111 chan->send = tap_send; in tap_init()
112 chan->recv = tap_recv; in tap_init()
113 chan->mru = ETHER_HDR_LEN + ETHER_MAX_LEN; in tap_init()
114 memcpy(chan->raddr, ifr.ifr_addr.sa_data, ETHER_ADDR_LEN); in tap_init()
115 memcpy(chan->laddr, ifr.ifr_addr.sa_data, ETHER_ADDR_LEN); in tap_init()
116 chan->state = CHANNEL_OPEN; in tap_init()
117 if (!channel_open(chan, fd)) in tap_init()
122 chan->pfh = pidfile_open(pidfile, 0600, NULL); in tap_init()
123 if (chan->pfh == NULL) in tap_init()
125 else if (pidfile_write(chan->pfh) < 0) { in tap_init()
127 pidfile_remove(chan->pfh); in tap_init()
128 chan->pfh = NULL; in tap_init()
133 tap_send(channel_t *chan, packet_t *pkt) in tap_send() argument
138 iov[0].iov_base = pkt->dst; in tap_send()
140 iov[1].iov_base = pkt->src; in tap_send()
142 iov[2].iov_base = pkt->type; in tap_send()
144 iov[3].iov_base = pkt->ptr; in tap_send()
145 iov[3].iov_len = pkt->len; in tap_send()
148 nw = writev(chan->fd, iov, __arraycount(iov)); in tap_send()
158 if (pkt->len < ETHER_HDR_LEN) in tap_recv()
161 pkt->dst = pkt->ptr; in tap_recv()
163 pkt->src = pkt->ptr; in tap_recv()
165 pkt->type = pkt->ptr; in tap_recv()