For many years the LINX has provided a “Peering Template” which was intended to simplify the business of establishing Peering connections, by offering a standard form agreement for peering. (Unfortunately I could not find it when I last looked.)
Some time ago we decided at Thus to improve the Peering Template. The result was put in the public domain and offered to LINX members. It is available here in .pdf form and here in .rtf form. [Chris Hall produced the document, assisted by Andrew Bangs (network engineering) and Alison Russell (legal).]
There was some agreement amongst LINX members that a good standard form agreement would be a Good Thing. While the agreement we had produced was a definite improvement on its predecessor, I did not think that by itself it would solve the problem that LINX members thought it would solve. I wrote some notes on how the agreement might be developed, Towards a “Model” Peering Peering Contract. Nothing much happened.
Below are some notes on the motivation for a standard peering agreement, notes on the agreement itself, followed by a discussion of the limitations and possible development. Finally there are some suggestions for further work.
One thing that should be added is the requirement to use MD5 Authentication (A-4). Route aggregation is addressed (A-4.4), but that could be brought into line with more recent LINX policy. Of course, were there a suitable statement of Best Common Practice for Internet Network Interconnect, one would refer to that, too.
Note: the agreement is designed for simple peering connections where networks exchange only their own routes, so is not immediately suitable for Transit arrangements. The provisions of the agreement apply equally to both parties.
The obvious question is why should one worry about having a peering agreement at all ? Many peering arrangements are set up on a generally understood “best efforts” basis, often on the exchange of email between BGP Magi. Since the straightforward approach works, why would one want to jump into a legal tar pit ? The main reasons appear to be:
Accepting that any or all of these are good reasons to formalise peering, the standard peering agreement is an obvious attempt to avoid lengthy legal review every time a peering arrangement is to be set up (as well as an attempt to provide a “best practice” form of words).
The agreement has a main part followed by a number of schedules. The first schedule covers the “Operational Requirements”, so separate the more technical provisions from the more generally contractual stuff. The other schedules document the peering connections and contact information.
The agreement is intended to provide:
suitable for situations where grubby commercial (money) considerations do not intrude – as is commonly the case at an Internet Exchange.
This sets up definitions for various technical terms used and some common statements to guide the interpretation of the agreement.
The definitions depend on a number of terms of art, definitions for which are not attempted. The objective was to be able to tightly specify peering arrangements tightly, while remaining reasonably concise. [Any and all suggestions for improvement, gratefully received.]
This section could be used for Transit or other interconnections between IP networks.
As narrow as possible, but no narrower.
Specifies what the parties will do and not do. Refers to all the schedules. Allows for the peering arrangement to comprise a number of connections and for those connections to be via “public” interconnection (shared infrastructure such as a switch) or to be direct connections between the networks.
In fact the definition of Public Interconnection Point covers any form of connection where more than two networks may connect using some shared facilities – which includes facilities which might be better described as private. [This could be redrafted to be a Shared Interconnection Point without difficulty.]
The key distinction between “Public”and “Direct” connections is that in the public case each party is clearly responsible for their own circuit to some common infrastructure, where in the direct case there is a single circuit between the networks. This boils down to how the connection is paid for:
In order to be able to refer to all peering connections as Interconnection Points the definitions are for Public Interconnection Points and Direct Interconnection Points. This is stretching the meaning of a Point somewhat, to include exchanges spread over quite a wide area (these days) and circuits that one would usually call point to point. The agreement that this grew out of was intended to cover the case of peering at a Public Exchange Point (for example, selecting at random, LINX). Looking at it again today, I think the definitions would benefit from being recast as Network Interconnection (replacing Interconnection Point), Direct Network Interconnection (replacing Direct Interconnection Point) and Shared Network Interconnection (replacing Public Interconnection Point).
Also on reflection, I would also have a go at the specification of how the cost of the shared portion of a Shared Network Interconnection is to be divided. In the case of an exchange point, such as LINX, it seems obvious that each network will cover its own costs for the use of the shared infrastructure, and that is implicit (not explicit) in the current wording. Further, one can imagine shared infrastructure where there is only one bill, or cases where one party agree to cover more of the costs.
Peering is to be settlement free, assuming some generally agreed meaning of that.
Nobody said this was going to be easy.
This is fairly straightforward stuff. All contracts need a term – the world changes and you do not want ancient, indefinite contracts hanging round your neck. Also, if the other party fails to live up to the contract you want a clear means terminate, both as a last resort and a last incentive.
The term is an initial, fixed twelve months, continuing indefinitely until either party gives 90 days notice.
There are provisions to deal with termination:
Finally, most networks will not provide Transit and peering at the same time. So, if a Transit agreement is entered into, the Peering Agreement may be terminated.
These provisions are reasonable for straightforward peering, where the value to each party is sufficient incentive to maintain the connection. The agreement could be made more flexible by moving the actual term into a schedule, though that could in any case be modified by side letter. Where either party has circuits dedicated to a given peering connection, they may wish the term of the peering agreement to at least coincide with any term on those circuits or with a reasonable pay back period for them.
However, if the arrangement has particular value to one party they may wish to tie the other to a longer term. However, it must be noted that the agreement provides few means to prevent the other party from simply ceasing to pass traffic – some penalty or compensation mechanism is required.
Note that change of control is not a cause for termination.
To make it clear that neither party is responsible for the other’s customers.
Being some best practice provisions for the treatment of traffic.
Or, more precisely, the disclaimer of any warranty other than the ability to enter into the contract.
Note in particular that neither party undertakes to make any effort to properly handle each other's traffic. This is arguably a weakness. However, both parties are handling traffic to or from their own customers, so both have a built in incentive to properly handle the traffic. Including any specific warranties was judged to be likely to lead to objections from legal folk.
Shit happens.
Legal security blanket.
Confidentiality is easier to waive than to establish after the event.
The existence of the peering arrangement is easy enough to discover, and may in any case be something that both parties which to make known. However, almost everything else may be felt to be confidential, such as: the locations, means and capacities of interconnects; traffic volumes; network incidents; etc.
Assignment requires written consent, but is allowed. The agreement is quite open to either party’s business being rearranged (by acquisition, for example).
Just in case.
A light weight procedure provided to help smooth out disputes. Given that both parties should have an incentive to keep the peering arrangement running, if this dispute resolution is insufficient then something has broken down.
This specifies English Law. Other jurisdictions may be preferred.
The remaining terms are straightforward boilerplate.
This is intended to put the peering arrangement on a solid, best practice basis. It reads in best practice from a number of sources and specifies a number of particular requirements.
The requirement to use MD5 Authentication should be added.
Route aggregation is addressed (A-4.4), but that could be brought into line with more recent LINX recommendations.
The agreement has two main limitations. First, it is designed for the most straightforward case of peering, where both parties are more or less equally happy to peer and the commercial consequences of the arrangement breaking down are relatively limited. Second, it is hard to use any “Standard Agreement” entirely unchanged even in straightforward applications.
Any contract has two functions. First, to specify what the parties expect of each other in the normal course of events – the “up side”. Second, to minimise the impact of either party failing to do what is expected and/or provide disincentives for such failure – the “down side”.
This agreement is intended to be uncontentious, so that it can be used with the minimum of changes by the maximum of people. This means that the agreement is very light on the “down side”. To repeat, this is fine for simple peering where:
Where any of the above do not apply we have a more complex peering arrangement, requiring additional contract terms.
The real purpose of the Standard Agreement is to provide for the simple case, so that peering arrangements can be formalised with the absolute minimum of legal review – hopefully an organisation can review the agreement once and then execute contracts in that form without further review.
More complex peering will probably require special terms with legal review by both parties for each special contract.
The Standard Agreement could, nevertheless, form the basis for each special contract. The definitions, description of the peering process, operational requirements and so on could provide a framework which can be agreed straightforwardly and on to which special terms may be hung.
It is unusual for any given legal practitioner not to feel compelled to improve any contract put before them; they may even be required to ensure that all contracts meet their corporate standards. Engineers are equally prone to fine tuning. When reviewing the contract it is essential to remember the context for its use and that each change adds to the difficulty of applying it – the benefit of any change must be carefully weighed against the cost of stepping away from the Standard.
Two sorts of changes might be made:
In either case, as the agreement stands the recommended mechanism is a side letter (or any other means to effect changes without touching the standard text).
In Towards a “Model” Peering Peering Contract are some ideas about how the Standard Agreement could be developed. (I wrote that some time ago. I have not revised it, so please forgive any repetition.)
The first idea is to identify parts of the agreement that will commonly be varied and provide either a standard set of alternatives, or a number of parameters with standard limits. When an organisation reviews the contract it can at that time decide which alternatives and parameter values it will accept and under what circumstances. The objective here is to enable two organisations to execute an agreement within the range of the Standard Model without further legal review, provided there is a suitable overlap in the alternatives and parameters acceptable to both organisations.
In building a measure of variability into the standard the aim would be minimise the number of non-standard changes that would be required in the practical application of a standard agreement. (I called the result a Model Contract to emphasise the fact that it would no longer be a single, fixed agreement, but a standard model from which particular agreements could be cast.)
The second idea is to further separate the various aspects of the agreement (technical, operational, legal and commercial) so that more radical customisation is made easier. This would allow, for example, the contract for a key peering arrangement to read in standard technical and operational requirements to sit alongside special legal and commercial provisions. This should clarify the agreement even for the straightforward application to simple peering.
The third idea is to build in to the Model Contract a reference to a schedule (hopefully empty) of special terms that take precedence over the body of the contract. This would go with the schedule(s) required to specify which of the standard alternatives apply and what values the standard parameters have.
There are then some ideas about how such a Model Contract could be applied (the Model Contract Protocol !), which includes capturing all the variable parts of a peering agreement (all the schedules other than the Schedule A, Operational Requirements) into one Model Contract Form. [Thinking about it, the trick may be to pull all the variable schedules into one.]
Experience to date is that many people agree to the proposition “a Standard Peering Contract would be a Good Thing”, but not such a good thing to justify expending anyone’s time or treasure on.
Nevertheless, I suggest the following to move this on:
Finally, the agreement as it stands fails to specify any consideration. I know asked a legal eagle about this, many, many moons ago but I am damned if I can remember...
Chris Hall, January 2007
chris.hall@highwayman.com