Lines Matching refs:skb

60 	int (*read)(struct iss_net_private *lp, struct sk_buff **skb);
61 int (*write)(struct iss_net_private *lp, struct sk_buff **skb);
62 unsigned short (*protocol)(struct sk_buff *skb);
193 static int tuntap_read(struct iss_net_private *lp, struct sk_buff **skb) in tuntap_read() argument
196 (*skb)->data, (*skb)->dev->mtu + ETH_HEADER_OTHER); in tuntap_read()
199 static int tuntap_write(struct iss_net_private *lp, struct sk_buff **skb) in tuntap_write() argument
201 return simc_write(lp->tp.info.tuntap.fd, (*skb)->data, (*skb)->len); in tuntap_write()
204 static unsigned short tuntap_protocol(struct sk_buff *skb) in tuntap_protocol() argument
206 return eth_type_trans(skb, skb->dev); in tuntap_protocol()
276 struct sk_buff *skb; in iss_net_rx() local
285 skb = dev_alloc_skb(dev->mtu + 2 + ETH_HEADER_OTHER); in iss_net_rx()
286 if (skb == NULL) { in iss_net_rx()
293 skb_reserve(skb, 2); in iss_net_rx()
297 skb->dev = dev; in iss_net_rx()
298 skb_reset_mac_header(skb); in iss_net_rx()
299 pkt_len = lp->tp.net_ops->read(lp, &skb); in iss_net_rx()
300 skb_put(skb, pkt_len); in iss_net_rx()
303 skb_trim(skb, pkt_len); in iss_net_rx()
304 skb->protocol = lp->tp.net_ops->protocol(skb); in iss_net_rx()
307 lp->stats.rx_bytes += skb->len; in iss_net_rx()
310 netif_rx(skb); in iss_net_rx()
313 kfree_skb(skb); in iss_net_rx()
384 static int iss_net_start_xmit(struct sk_buff *skb, struct net_device *dev) in iss_net_start_xmit() argument
391 len = lp->tp.net_ops->write(lp, &skb); in iss_net_start_xmit()
393 if (len == skb->len) { in iss_net_start_xmit()
396 lp->stats.tx_bytes += skb->len; in iss_net_start_xmit()
416 dev_kfree_skb(skb); in iss_net_start_xmit()