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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).