From: Eric Dumazet <dada1@cosmosbay.com>
To: Mark Smith <ipng@69706e6720323030352d30312d31340a.nosense.org>
Cc: netdev@vger.kernel.org, Jay Vosburgh <fubar@us.ibm.com>
Subject: Re: [RFC, PATCH 2.6.29.1] Ethernet V2.0 Configuration Testing Protocol
Date: Fri, 24 Apr 2009 09:36:14 +0200 [thread overview]
Message-ID: <49F16BEE.2040902@cosmosbay.com> (raw)
In-Reply-To: <20090423221015.48b79b04.ipng@69706e6720323030352d30312d31340a.nosense.org>
Mark Smith a écrit :
> Hi,
>
> I'm hoping my attached implementation of the Ethernet V2.0 Configuration
> Testing Protocol could be reviewed, with eventual goal of inclusion in
> the kernel.
>
> Ethernet V2.0 Configuration Testing Protocol (ECTP) is an old Ethernet
> testing protocol, specified in section 8 of the original Ethernet V2.0
> specification. It provides request/reply "ping" style testing at
> the Ethernet layer, testing of a path via a list of devices (i.e. a
> strict source route), and identification of ECTP capable devices via
> broadcast or multicast ECTP requests.
>
> I've had a go at implementing it for a number of reasons:
>
> o My day job involves running networks, and eventually you start to
> wonder what is going on inside the devices you use. I think having a go
> at implementing something is a good way to learn.
>
> o It's a very simple protocol (a single frame format), so it could be
> a good starting point for people who'd like to understand more about
> how networking works in the Linux kernel. I've tried to make the
> implementation easy for people to follow what it is doing.
>
> o It's actually quite useful - every now and then people in networking
> say, "wouldn't it be great if there was an Ethernet ping which didn't
> require IP to work". Recent Ethernet OAM standards provide that, but
> they're a lot more complicated to implement than ECTP, and I needed
> something simple to start with :-)
>
> o It might finally make Linux completely compliant with the Ethernet
> V2.0 specification which says that the protocol is required!
>
> I've also put together a testing utility. I need to put a bit more
> polish on it, and find somewhere to host it, which I'll do in the next
> few days. Here are a couple of examples of it's use:
>
> o a unicast ECTP "ping"
>
> [root@opy ectpping]# ./ectpping -i tap0 52:54:00:12:34:56
> ECTPPING 52:54:00:12:34:56 (qa64-eth0) using tap0
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=0 time=0.000346 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=1 time=0.000209 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=2 time=0.000203 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=3 time=0.000187 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=4 time=0.000210 sec
> ^C
> ---- 52:54:00:12:34:56 (qa64-eth0) ECTPPING Statistics ----
> 5 packets transmitted, 5 packets received, 0.000000% packet loss
> round-trip (sec) min/avg/max/total = 0.000187/0.000231/0.000346/0.001155
>
>
> o a multicast ECTP "ping"
>
> [root@opy ectpping]# ./ectpping -i tap0
> ECTPPING cf:00:00:00:00:00 (loopback-assist) using tap0
> 106 bytes from 52:54:00:12:34:57 (qa64-eth1): ectp_seq=0 time=0.018630 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=0 time=0.056334 sec
> 106 bytes from 52:54:00:12:34:58 (qa64-eth2): ectp_seq=0 time=0.056656 sec
> 106 bytes from 52:54:00:12:34:58 (qa64-eth2): ectp_seq=1 time=0.020351 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=1 time=0.024241 sec
> 106 bytes from 52:54:00:12:34:57 (qa64-eth1): ectp_seq=1 time=0.031350 sec
> 106 bytes from 52:54:00:12:34:58 (qa64-eth2): ectp_seq=2 time=0.049382 sec
> 106 bytes from 52:54:00:12:34:57 (qa64-eth1): ectp_seq=2 time=0.067358 sec
> 106 bytes from 52:54:00:12:34:56 (qa64-eth0): ectp_seq=2 time=0.074230 sec
> ^C
> ---- cf:00:00:00:00:00 (loopback-assist) ECTPPING Statistics ----
> 3 packets transmitted, 9 packets received, 3.00 times packet increase
> round-trip (sec) min/avg/max/total = 0.018630/0.044281/0.074230/0.398532
>
> While I'm finishing off the utility, I thought I'd post the kernel
> source to get it out there for people to have a look at. I'd really
> appreciate any suggestions for improvement, or any pointers to where
> I've done the wrong thing or had any miss understandings. The patch is
> against 2.6.29.1.
>
> Thanks very much,
> Mark.
>
> (please CC me, as I'm not on the mailing list)
>
Hello Mark
I am trying to find how ETCP could be useful :)
Could bonding use ETCP as a third way to validate a slave is operational ?
First way is mii-mon (link presence to next hop)
-> Very lazy since we can be connected to a switch that lost all connectivity to other equipments.
Second way is arp_ping (list of 1 to 16 IP addresses)
-> broadcast messages.
If many hosts are on [V]LAN, and small arp_interval, this can generate extra trafic.
Third way : ETCP messages sent to given MAC address ?
(Unicast messages, and no VLAN troubles...)
I presume most routers support ETCP?
Is ectpping needing your kernel patches, or can it work with current kernel ?
If not too large, you could post its source on this list.
Thank you
next prev parent reply other threads:[~2009-04-24 7:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-23 12:40 [RFC, PATCH 2.6.29.1] Ethernet V2.0 Configuration Testing Protocol Mark Smith
2009-04-24 7:36 ` Eric Dumazet [this message]
2009-04-25 1:37 ` Mark Smith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49F16BEE.2040902@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=fubar@us.ibm.com \
--cc=ipng@69706e6720323030352d30312d31340a.nosense.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.