Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2008 18:49:14 -0700
From:      "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com>
To:        "Maxim Sobolev" <sobomax@freebsd.org>
Cc:        Alexey Shuvaev <shuvaev@physik.uni-wuerzburg.de>, Kostik Belousov <kostikbel@gmail.com>, freebsd-current@freebsd.org, Ed Schouten <ed@80386.nl>
Subject:   Re: Interface auto-cloning bug or feature?
Message-ID:  <bb4a86c70809221849v640e66awa52a2b5d944ca0dc@mail.gmail.com>
In-Reply-To: <48D8196E.7020005@FreeBSD.org>
References:  <48D2F942.4070801@FreeBSD.org> <20080919084201.GD44330@wep4035.physik.uni-wuerzburg.de> <48D38DFF.8000803@FreeBSD.org> <20080919203310.GA34131@localhost.my.domain> <bb4a86c70809191543y7f3d38ex73c48186dfd163c5@mail.gmail.com> <bb4a86c70809191551y774c233g5e664c431be62a50@mail.gmail.com> <48D8196E.7020005@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_13317_11640650.1222134554266
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

[...]

>>> ok, how about attached patch. i put it together *very* quickly and
>>> only gave it a light testing. its for tap(4), because i could compile
>>> it as a module and tun(4) is compiled into kernel by default, but the
>>> idea should identical for tun(4). should be even simpler for tun(4)
>>> because it does not have to deal with 2 kind of devices (i.e. tap and
>>> vmnet). give it a try, and see if it works. please try both cloning
>>> paths, i.e.
>>>
>>> 1) cat /dev/tap (/dev/vmnet) with and/or without unit number
>>>
>>> and
>>>
>>> 2) ifconfig tapX (vmnetX) create/destroy
>>>
>>> in the mean time i will prepare something similar for tun(4).
>>
>> attached is similar patch for tun(4). i only made sure it compiles :)
>> rebuilding kernel now...

attached is a slightly better patch for tap(4). the idea is to use
extra ALLOCATED flag that prevents the race Kostik pointed out. could
you please give it a try? any review comments are greatly appreciated.
if this is acceptable, i will prepare something similar for tun(4)

thanks,
max

------=_Part_13317_11640650.1222134554266
Content-Type: text/plain; name=if_tap.diff.txt
Content-Transfer-Encoding: base64
X-Attachment-Id: f_flfv76740
Content-Disposition: attachment; filename=if_tap.diff.txt

LS0tIGlmX3RhcC5jLm9yaWcJMjAwOC0wOS0wOCAxNzoyMDo1Ny4wMDAwMDAwMDAgLTA3MDAKKysr
IGlmX3RhcC5jCTIwMDgtMDktMjIgMTg6MzY6MTYuMDAwMDAwMDAwIC0wNzAwCkBAIC05NCw2ICs5
NCw3IEBACiBzdGF0aWMgaW50CQl0YXBpZmlvY3RsKHN0cnVjdCBpZm5ldCAqLCB1X2xvbmcsIGNh
ZGRyX3QpOwogc3RhdGljIHZvaWQJCXRhcGlmaW5pdCh2b2lkICopOwogCitzdGF0aWMgaW50CQl0
YXBfY2xvbmVfbG9va3VwKHN0cnVjdCBjZGV2ICoqLCB1X3Nob3J0KTsKIHN0YXRpYyBpbnQJCXRh
cF9jbG9uZV9jcmVhdGUoc3RydWN0IGlmX2Nsb25lICosIGludCwgY2FkZHJfdCk7CiBzdGF0aWMg
dm9pZAkJdGFwX2Nsb25lX2Rlc3Ryb3koc3RydWN0IGlmbmV0ICopOwogc3RhdGljIGludAkJdm1u
ZXRfY2xvbmVfY3JlYXRlKHN0cnVjdCBpZl9jbG9uZSAqLCBpbnQsIGNhZGRyX3QpOwpAQCAtMTc2
LDYgKzE3NywzMCBAQAogREVWX01PRFVMRShpZl90YXAsIHRhcG1vZGV2ZW50LCBOVUxMKTsKIAog
c3RhdGljIGludAordGFwX2Nsb25lX2xvb2t1cChzdHJ1Y3QgY2RldiAqKmRldiwgdV9zaG9ydCBl
eHRyYSkKK3sKKwlzdHJ1Y3QgdGFwX3NvZnRjICp0cDsKKworCW10eF9sb2NrKCZ0YXBtdHgpOwor
CVNMSVNUX0ZPUkVBQ0godHAsICZ0YXBoZWFkLCB0YXBfbmV4dCkgeworCQltdHhfbG9jaygmdHAt
PnRhcF9tdHgpOworCisJCWlmICgodHAtPnRhcF9mbGFncyAmIChUQVBfT1BFTnxUQVBfQUxMT0NB
VEVEfGV4dHJhKSkgPT0gZXh0cmEpIHsKKwkJCXRwLT50YXBfZmxhZ3MgfD0gVEFQX0FMTE9DQVRF
RDsKKwkJCSpkZXYgPSB0cC0+dGFwX2RldjsKKwkJCW10eF91bmxvY2soJnRwLT50YXBfbXR4KTsK
KwkJCW10eF91bmxvY2soJnRhcG10eCk7CisKKwkJCXJldHVybiAoMSk7CisJCX0KKwkJbXR4X3Vu
bG9jaygmdHAtPnRhcF9tdHgpOworCX0KKwltdHhfdW5sb2NrKCZ0YXBtdHgpOworCisJcmV0dXJu
ICgwKTsKK30KKworc3RhdGljIGludAogdGFwX2Nsb25lX2NyZWF0ZShzdHJ1Y3QgaWZfY2xvbmUg
KmlmYywgaW50IHVuaXQsIGNhZGRyX3QgcGFyYW1zKQogewogCXN0cnVjdCBjZGV2ICpkZXY7CkBA
IC0yODgsNyArMzEzLDcgQEAKIAkJbXR4X2xvY2soJnRhcG10eCk7CiAJCVNMSVNUX0ZPUkVBQ0go
dHAsICZ0YXBoZWFkLCB0YXBfbmV4dCkgewogCQkJbXR4X2xvY2soJnRwLT50YXBfbXR4KTsKLQkJ
CWlmICh0cC0+dGFwX2ZsYWdzICYgVEFQX09QRU4pIHsKKwkJCWlmICh0cC0+dGFwX2ZsYWdzICYg
KFRBUF9PUEVOfFRBUF9BTExPQ0FURUQpKSB7CiAJCQkJbXR4X3VubG9jaygmdHAtPnRhcF9tdHgp
OwogCQkJCW10eF91bmxvY2soJnRhcG10eCk7CiAJCQkJcmV0dXJuIChFQlVTWSk7CkBAIC0zNTMs
OCArMzc4LDE4IEBACiAKIAkvKiBXZSdyZSBpbnRlcmVzdGVkIGluIG9ubHkgdGFwL3ZtbmV0IGRl
dmljZXMuICovCiAJaWYgKHN0cmNtcChuYW1lLCBUQVApID09IDApIHsKKwkJaWYgKHRhcF9jbG9u
ZV9sb29rdXAoZGV2LCAwKSkgeworCQkJZGV2X3JlZigqZGV2KTsKKwkJCXJldHVybjsKKwkJfQor
CiAJCXVuaXQgPSAtMTsKIAl9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCBWTU5FVCkgPT0gMCkgewor
CQlpZiAodGFwX2Nsb25lX2xvb2t1cChkZXYsIFRBUF9WTU5FVCkpIHsKKwkJCWRldl9yZWYoKmRl
dik7CisJCQlyZXR1cm47CisJCX0KKwogCQl1bml0ID0gLTE7CiAJCWV4dHJhID0gVk1ORVRfREVW
X01BU0s7CiAJfSBlbHNlIGlmIChkZXZfc3RkY2xvbmUobmFtZSwgTlVMTCwgVEFQLCAmdW5pdCkg
IT0gMSkgewpAQCAtNTU5LDEyICs1OTQsMTEgQEAKIAlLTk9URV9VTkxPQ0tFRCgmdHAtPnRhcF9y
c2VsLnNpX25vdGUsIDApOwogCiAJbXR4X2xvY2soJnRwLT50YXBfbXR4KTsKLQl0cC0+dGFwX2Zs
YWdzICY9IH5UQVBfT1BFTjsKKwl0cC0+dGFwX2ZsYWdzICY9IH4oVEFQX09QRU58VEFQX0FMTE9D
QVRFRCk7CiAJdHAtPnRhcF9waWQgPSAwOwogCW10eF91bmxvY2soJnRwLT50YXBfbXR4KTsKIAot
CVRBUERFQlVHKCIlcyBpcyBjbG9zZWQuIG1pbm9yID0gJSN4XG4iLCAKLQkJaWZwLT5pZl94bmFt
ZSwgbWlub3IoZGV2KSk7CisJVEFQREVCVUcoIiVzIGlzIGNsb3NlZC4gbWlub3IgPSAlI3hcbiIs
IGlmcC0+aWZfeG5hbWUsIG1pbm9yKGRldikpOwogCiAJcmV0dXJuICgwKTsKIH0gLyogdGFwY2xv
c2UgKi8KLS0tIGlmX3RhcHZhci5oLm9yaWcJMjAwNS0wNi0xMCAxMjowNDo1Mi4wMDAwMDAwMDAg
LTA3MDAKKysrIGlmX3RhcHZhci5oCTIwMDgtMDktMjIgMTc6MzQ6MDAuMDAwMDAwMDAwIC0wNzAw
CkBAIC01NCw2ICs1NCw3IEBACiAjZGVmaW5lCVRBUF9BU1lOQwkoMSA8PCAzKQogI2RlZmluZSBU
QVBfUkVBRFkgICAgICAgKFRBUF9PUEVOfFRBUF9JTklURUQpCiAjZGVmaW5lCVRBUF9WTU5FVAko
MSA8PCA0KQorI2RlZmluZSBUQVBfQUxMT0NBVEVECSgxIDw8IDUpCiAKIAl1X2ludDhfdCAJZXRo
ZXJfYWRkcltFVEhFUl9BRERSX0xFTl07IC8qIGV0aGVyIGFkZHIgb2YgdGhlIHJlbW90ZSBzaWRl
ICovCiAK
------=_Part_13317_11640650.1222134554266--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bb4a86c70809221849v640e66awa52a2b5d944ca0dc>