Xref and relaying agents (was: Protocol changes in draft-allbery-usefor-usepro-00)

Russ Allbery <rra@stanford.edu> Fri, 29 December 2006 21:44 UTC

Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1H0PX9-00017p-Qx for usefor-archive@lists.ietf.org; Fri, 29 Dec 2006 16:44:59 -0500
Received: from balder-227.proper.com ([192.245.12.227]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1H0PX8-0002v4-Cl for usefor-archive@lists.ietf.org; Fri, 29 Dec 2006 16:44:59 -0500
Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id kBTLgRiF075140; Fri, 29 Dec 2006 14:42:27 -0700 (MST) (envelope-from owner-ietf-usefor@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.13.5/8.13.5/Submit) id kBTLgRch075139; Fri, 29 Dec 2006 14:42:27 -0700 (MST) (envelope-from owner-ietf-usefor@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-ietf-usefor@mail.imc.org using -f
Received: from smtp1.stanford.edu (smtp1.Stanford.EDU [171.67.22.28]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id kBTLgQVM075133 for <ietf-usefor@imc.org>; Fri, 29 Dec 2006 14:42:26 -0700 (MST) (envelope-from rra@stanford.edu)
Received: from smtp1.stanford.edu (localhost.localdomain [127.0.0.1]) by localhost (Postfix) with SMTP id 911844C37E for <ietf-usefor@imc.org>; Fri, 29 Dec 2006 13:42:26 -0800 (PST)
Received: from windlord.stanford.edu (windlord.Stanford.EDU [171.64.19.147]) by smtp1.stanford.edu (Postfix) with ESMTP id 3ECC54C7B5 for <ietf-usefor@imc.org>; Fri, 29 Dec 2006 13:42:26 -0800 (PST)
Received: by windlord.stanford.edu (Postfix, from userid 1000) id 39C7CE7C46; Fri, 29 Dec 2006 13:42:26 -0800 (PST)
From: Russ Allbery <rra@stanford.edu>
To: ietf-usefor@imc.org
Subject: Xref and relaying agents (was: Protocol changes in draft-allbery-usefor-usepro-00)
In-Reply-To: <JAHJs5.FHC@clerew.man.ac.uk> (Charles Lindsey's message of "Mon, 18 Dec 2006 20:04:53 GMT")
Organization: The Eyrie
References: <JA8C4p.Anu@clerew.man.ac.uk> <873b7i9b2m.fsf@windlord.stanford.edu> <JAHJs5.FHC@clerew.man.ac.uk>
Date: Fri, 29 Dec 2006 13:42:26 -0800
Message-ID: <87fyaygz0d.fsf_-_@windlord.stanford.edu>
User-Agent: Gnus/5.110006 (No Gnus v0.6) XEmacs/21.4.19 (linux)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: owner-ietf-usefor@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-usefor/mail-archive/>
List-Unsubscribe: <mailto:ietf-usefor-request@imc.org?body=unsubscribe>
List-ID: <ietf-usefor.imc.org>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: b4a0a5f5992e2a4954405484e7717d8c

Charles Lindsey <chl@clerew.man.ac.uk> writes:
> Russ Allbery <rra@stanford.edu> writes:
>> Charles Lindsey <chl@clerew.man.ac.uk> writes:

>>> 20. [00] (3.5) Relaying agent MAY add a new Xref header.

>>> Why might it want to do that?

>> Intentional change.

>> Because the same piece of software also implements a serving agent,
>> which has to add the Xref header, and the same code path is used for
>> all articles received by the server whether they are for further
>> relaying or local serving.

> Well if that is the case it was nominally the serving function that
> added the Xref (section 3.6).

No, because changes made by serving agents would only be seen by posting
agents.  Serving agents do not sent messages to any other news server.
Only relaying agents do that.

> Now whether such an agent first stores the article and then relays what
> it has stored, or whether it relays first and then stores after is none
> of our business.

Our agent description describes the flow, and doesn't allow for this,
conceptually.  This is true even in the current USEPRO draft.

   An "injecting agent" takes the finished article from the posting
   agent (often via the NNTP "POST" command), performs some final checks
   and passes it on to a "relaying agent" for general distribution.

   A "relaying agent" is software which receives allegedly compliant
   articles from injecting agents and/or other relaying agents, and
   possibly passes copies on to other relaying agents and "storage
   agents".

   A "storage agent" receives an article from a relaying agent and files
   it in a "news database". It also provides an interface for reading
   agents to access the news database.

The progression of an article is:

    posting -> injecting -> 1* relaying -> serving -> reading

Articles do not go to serving agents and then back to relaying agents.
This is, admittedly, the only place where it really matters from a
protocol standpoint, but it affects the wording in subtle ways in various
other places and I'd rather keep the clarity.

Because of this, the protocol description has to say that the relaying
agent may add an Xref header, since otherwise nothing in the protocol
permits the Xref header to appear in the article until it reaches a
serving agent.

Few news implementations have a true serving agent as defined in our
document.  INN, for example, splits that function between innd and nnrpd.
Diablo is the only implementation I'm familiar with that has a pure
serving agent as a separate service, although I think the Highwind
commercial servers may also have an equivalent.

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>