79
#define DBG if(tun->debug)printk
80
#define DBG1 if(debug==2)printk
81
#define tun_debug(level, tun, fmt, args...) \
84
netdev_printk(level, tun->dev, fmt, ##args); \
86
#define DBG1(level, fmt, args...) \
89
printk(level fmt, ##args); \
92
#define tun_debug(level, tun, fmt, args...) \
95
netdev_printk(level, tun->dev, fmt, ##args); \
97
#define DBG1(level, fmt, args...) \
100
printk(level fmt, ##args); \
86
104
#define FLT_EXACT_COUNT 8
361
379
struct tun_struct *tun = netdev_priv(dev);
363
DBG(KERN_INFO "%s: tun_net_xmit %d\n", tun->dev->name, skb->len);
381
tun_debug(KERN_INFO, tun, "tun_net_xmit %d\n", skb->len);
365
383
/* Drop packet if interface is not attached */
500
518
sk = tun->socket.sk;
502
DBG(KERN_INFO "%s: tun_chr_poll\n", tun->dev->name);
520
tun_debug(KERN_INFO, tun, "tun_chr_poll\n");
504
522
poll_wait(file, &tun->wq.wait, wait);
693
DBG(KERN_INFO "%s: tun_chr_write %ld\n", tun->dev->name, count);
711
tun_debug(KERN_INFO, tun, "tun_chr_write %ld\n", count);
695
713
result = tun_get_user(tun, iv, iov_length(iv, count),
696
714
file->f_flags & O_NONBLOCK);
739
757
else if (sinfo->gso_type & SKB_GSO_UDP)
740
758
gso.gso_type = VIRTIO_NET_HDR_GSO_UDP;
742
printk(KERN_ERR "tun: unexpected GSO type: "
760
pr_err("unexpected GSO type: "
743
761
"0x%x, gso_size %d, hdr_len %d\n",
744
762
sinfo->gso_type, gso.gso_size,
786
804
struct sk_buff *skb;
789
DBG(KERN_INFO "%s: tun_chr_read\n", tun->dev->name);
807
tun_debug(KERN_INFO, tun, "tun_chr_read\n");
791
809
add_wait_queue(&tun->wq.wait, &wait);
1083
1101
if (device_create_file(&tun->dev->dev, &dev_attr_tun_flags) ||
1084
1102
device_create_file(&tun->dev->dev, &dev_attr_owner) ||
1085
1103
device_create_file(&tun->dev->dev, &dev_attr_group))
1086
printk(KERN_ERR "Failed to create tun sysfs files\n");
1104
pr_err("Failed to create tun sysfs files\n");
1088
1106
sk->sk_destruct = tun_sock_destruct;
1095
DBG(KERN_INFO "%s: tun_set_iff\n", tun->dev->name);
1113
tun_debug(KERN_INFO, tun, "tun_set_iff\n");
1097
1115
if (ifr->ifr_flags & IFF_NO_PI)
1098
1116
tun->flags |= TUN_NO_PI;
1129
1147
static int tun_get_iff(struct net *net, struct tun_struct *tun,
1130
1148
struct ifreq *ifr)
1132
DBG(KERN_INFO "%s: tun_get_iff\n", tun->dev->name);
1150
tun_debug(KERN_INFO, tun, "tun_get_iff\n");
1134
1152
strcpy(ifr->ifr_name, tun->dev->name);
1142
1160
* privs required. */
1143
1161
static int set_offload(struct net_device *dev, unsigned long arg)
1145
unsigned int old_features, features;
1163
u32 old_features, features;
1147
1165
old_features = dev->features;
1148
1166
/* Unset features, set them as we chew on the arg. */
1232
DBG(KERN_INFO "%s: tun_chr_ioctl cmd %d\n", tun->dev->name, cmd);
1250
tun_debug(KERN_INFO, tun, "tun_chr_ioctl cmd %d\n", cmd);
1250
1268
tun->flags &= ~TUN_NOCHECKSUM;
1252
DBG(KERN_INFO "%s: checksum %s\n",
1253
tun->dev->name, arg ? "disabled" : "enabled");
1270
tun_debug(KERN_INFO, tun, "checksum %s\n",
1271
arg ? "disabled" : "enabled");
1256
1274
case TUNSETPERSIST:
1261
1279
tun->flags &= ~TUN_PERSIST;
1263
DBG(KERN_INFO "%s: persist %s\n",
1264
tun->dev->name, arg ? "enabled" : "disabled");
1281
tun_debug(KERN_INFO, tun, "persist %s\n",
1282
arg ? "enabled" : "disabled");
1267
1285
case TUNSETOWNER:
1268
1286
/* Set owner of the device */
1269
1287
tun->owner = (uid_t) arg;
1271
DBG(KERN_INFO "%s: owner set to %d\n", tun->dev->name, tun->owner);
1289
tun_debug(KERN_INFO, tun, "owner set to %d\n", tun->owner);
1274
1292
case TUNSETGROUP:
1275
1293
/* Set group of the device */
1276
1294
tun->group= (gid_t) arg;
1278
DBG(KERN_INFO "%s: group set to %d\n", tun->dev->name, tun->group);
1296
tun_debug(KERN_INFO, tun, "group set to %d\n", tun->group);
1281
1299
case TUNSETLINK:
1282
1300
/* Only allow setting the type when the interface is down */
1283
1301
if (tun->dev->flags & IFF_UP) {
1284
DBG(KERN_INFO "%s: Linktype set failed because interface is up\n",
1302
tun_debug(KERN_INFO, tun,
1303
"Linktype set failed because interface is up\n");
1288
1306
tun->dev->type = (int) arg;
1289
DBG(KERN_INFO "%s: linktype set to %d\n", tun->dev->name, tun->dev->type);
1307
tun_debug(KERN_INFO, tun, "linktype set to %d\n",
1319
1338
case SIOCSIFHWADDR:
1320
1339
/* Set hw address */
1321
DBG(KERN_DEBUG "%s: set hw address: %pM\n",
1322
tun->dev->name, ifr.ifr_hwaddr.sa_data);
1340
tun_debug(KERN_DEBUG, tun, "set hw address: %pM\n",
1341
ifr.ifr_hwaddr.sa_data);
1324
1343
ret = dev_set_mac_address(tun->dev, &ifr.ifr_hwaddr);
1434
1453
return -EBADFD;
1436
DBG(KERN_INFO "%s: tun_chr_fasync %d\n", tun->dev->name, on);
1455
tun_debug(KERN_INFO, tun, "tun_chr_fasync %d\n", on);
1438
1457
if ((ret = fasync_helper(fd, file, on, &tun->fasync)) < 0)
1477
1496
struct net_device *dev = tun->dev;
1479
DBG(KERN_INFO "%s: tun_chr_close\n", dev->name);
1498
tun_debug(KERN_INFO, tun, "tun_chr_close\n");
1481
1500
__tun_detach(tun);
1610
printk(KERN_INFO "tun: %s, %s\n", DRV_DESCRIPTION, DRV_VERSION);
1611
printk(KERN_INFO "tun: %s\n", DRV_COPYRIGHT);
1629
pr_info("%s, %s\n", DRV_DESCRIPTION, DRV_VERSION);
1630
pr_info("%s\n", DRV_COPYRIGHT);
1613
1632
ret = rtnl_link_register(&tun_link_ops);
1615
printk(KERN_ERR "tun: Can't register link_ops\n");
1634
pr_err("Can't register link_ops\n");
1616
1635
goto err_linkops;
1619
1638
ret = misc_register(&tun_miscdev);
1621
printk(KERN_ERR "tun: Can't register misc device %d\n", TUN_MINOR);
1640
pr_err("Can't register misc device %d\n", TUN_MINOR);