Me too.? My position is that most assuredly isn't what this is.
I will admit that my background does effect some of my opinions here.? I
was part owner of a company that developed software.? If something broke
or didn't work, that meant an annoyed user, reduced NPS, escalation from
the help desk to development and then delays.
You /really/ did not want the user picking up the phone to open a
trouble ticket.? You wanted them happily using your product to run their
business.
So I don't feel this is simply 'layers' because it is visible tangible
value.? It's a simple decision that saves somebody some annoyance or
possibly throwing up their hands or bothering you. It's just too easy to
run out of bandwidth for something that is obviously not a heavy lift
and is trivial to comment should there be any maintenance concerns.
On 3/10/20 5:46 PM, Keith Halewood wrote:
I chose the code change I made simply because I don?t use pcap. I also
don?t like layers for layers sake.
*From:*owner-hecnet at Update.UU.SE [mailto:owner-hecnet at Update.UU.SE]
*On Behalf Of *David Moylan
*Sent:* 10 March 2020 21:19
*To:* hecnet at Update.UU.SE
*Subject:* RE: [HECnet] Intermittent Connection with PyDECnet?
I?m all for backwards compatibility, however the /dev/net/tun
interface has been in linux since the 2.6 days. A quick google shows
that people back in 2010 have been using it, and browsing on
kernel.org for the oldest archived kernel entry of 2.6.11 shows code
examples for /dev/net/tun dated 2005.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Docum…
I think the starting date for support of /dev/net/tun is earlier than
that of the discontinuation of support for /dev/tapx.
Given that the whole goal of pyDECnet is to permit usage of decnet on
more modern environments, I think having code that supports back to
2005 is a pretty solid move.
Cheers, Wiz!!
*From:*owner-hecnet at Update.UU.SE <mailto:owner-hecnet at Update.UU.SE>
[mailto:owner-hecnet at Update.UU.SE] *On Behalf Of *Thomas DeBellis
*Sent:* Wednesday, 11 March 2020 2:08 AM
*To:* hecnet at Update.UU.SE <mailto:hecnet at Update.UU.SE>
*Subject:* Re: [HECnet] Intermittent Connection with PyDECnet?
Since you may be running both on newer and older kernels, does it make
sense to test for which tunnel type interface exists and simply use that?
You don't even need to test versions, but rather try /dev/net/tun and
if it works, use that or if it fails, use /dev/tapx.
I'm a big fan of dynamic configuration, also known in the trade as
'auto magic' or 'automatic nice things'.
------------------------------------------------------------------------
On 3/10/20 9:40 AM, Paul Koning wrote:
Thanks, sorry for leaving that dangling.? I'll test that and merge
it into my code.
paul
------------------------------------------------------------------------
On Mar 10, 2020, at 4:28 AM, Keith Halewood
<Keith.Halewood at pitbulluk.org>
<mailto:Keith.Halewood at pitbulluk.org> wrote:
Hi,
These are the changes:
In? Ethernet.py:
?? class _TapEth (_Ethernet):
?????? def open (self):
?????????? fd = os.open('/dev/net/tun', os.O_RDWR | os.O_NONBLOCK)
?????????? ifr = struct.pack('16sH', self.dev.encode('utf-8'),
IFF_TAP | IFF_NO_PI)
?????????? ioctl(fd, TUNSETIFF, ifr)
?????????? self.tap = fd
?????????? self.sellist = ( fd, )
?????????? # Turn the interface on -- needed only on Mac OS
With the definitions of those constants up near the top:
TUNSETIFF = 0x400454ca
TUNSETOWNER = TUNSETIFF + 2
IFF_TUN = 0x0001
IFF_TAP = 0x0002
IFF_NO_PI = 0x1000
Keith
------------------------------------------------------------------------
From: owner-hecnet at Update.UU.SE
<mailto:owner-hecnet at Update.UU.SE>
[mailto:owner-hecnet at Update.UU.SE] On Behalf Of David Moylan
Sent: 10 March 2020 07:46
To: hecnet at Update.UU.SE <mailto:hecnet at Update.UU.SE>
Subject: RE: [HECnet] Intermittent Connection with PyDECnet?
Robert Armstrong said on Tuesday, 10 March 2020 4:17 AM
FWIW, the "tap:" option in pyDECnet never worked for me.?
I use pcap
to
access tap devices -
??? circuit TAP-0 Ethernet pcap:tap0 --single-address --cost=2
works for me with Ubuntu 18.04...
When I first went to play with pyDECnet under Ubuntu 18, I
also discovered issues with the tap adapter. Fundamentally the
issue comes down to newer kernels (such as in Ubuntu 18) that
use a /dev/net/tun interface to communicate instead of /dev/tapx
I heard on the list that Keith Halewood had modified Paul's
code to work with the newer interface standard, so I reached
out to him and he provided me with the changes. It's only a
few lines of code that need modification.
I believe Keith has provided Paul with the changes. I'd love
to see them become mainstream in pyDECnet, as at the moment if
I pull down a new build, I have to make the modifications by
hand again.
With the code changes, tap works a dream for me.
circuit tap-1022 Ethernet tap:tap1022 --random-address
cheers, Wiz!!