throbber
Network Working Group S. Hanks
`Request for Comments: 1701 NetSmiths, Ltd.
`Category: Informational T. Li
` D. Farinacci
` P. Traina
` cisco Systems
` October 1994
`
` Generic Routing Encapsulation (GRE)
`
`Status of this Memo
`
` This memo provides information for the Internet community. This memo
` does not specify an Internet standard of any kind. Distribution of
` this memo is unlimited.
`
`Abstract
`
` This document specifies a protocol for performing encapsulation of an
` arbitrary network layer protocol over another arbitrary network layer
` protocol.
`
`Introduction
`
` A number of different proposals [RFC 1234, RFC 1226] currently exist
` for the encapsulation of one protocol over another protocol. Other
` types of encapsulations [RFC 1241, SDRP, RFC 1479] have been proposed
` for transporting IP over IP for policy purposes. This memo describes
` a protocol which is very similar to, but is more general than, the
` above proposals. In attempting to be more general, many protocol
` specific nuances have been ignored. The result is that this proposal
` is may be less suitable for a situation where a specific "X over Y"
` encapsulation has been described. It is the attempt of this protocol
` to provide a simple, general purpose mechanism which is reduces the
` problem of encapsulation from its current O(n^2) problem to a more
` manageable state. This proposal also attempts to provide a
` lightweight encapsulation for use in policy based routing. This memo
` explicitly does not address the issue of when a packet should be
` encapsulated. This memo acknowledges, but does not address problems
` with mutual encapsulation [RFC 1326].
`
` In the most general case, a system has a packet that needs to be
` encapsulated and routed. We will call this the payload packet. The
` payload is first encapsulated in a GRE packet, which possibly also
` includes a route. The resulting GRE packet can then be encapsulated
` in some other protocol and then forwarded. We will call this outer
`
`Hanks, Li, Farinacci & Traina [Page 1]
`
`Microsoft
`Ex. 1030 - Page 1
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
` protocol the delivery protocol. The algorithms for processing this
` packet are discussed later.
`
`Overall packet
`
` The entire encapsulated packet would then have the form:
`
` ---------------------------------
` | |
` | Delivery Header |
` | |
` ---------------------------------
` | |
` | GRE Header |
` | |
` ---------------------------------
` | |
` | Payload packet |
` | |
` ---------------------------------
`
`Packet header
`
` The GRE packet header has the form:
`
` 0 1 2 3
` 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` |C|R|K|S|s|Recur| Flags | Ver | Protocol Type |
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` | Checksum (optional) | Offset (optional) |
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` | Key (optional) |
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` | Sequence Number (optional) |
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` | Routing (optional)
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
`
` Flags and version (2 octets)
`
` The GRE flags are encoded in the first two octets. Bit 0 is the
` most significant bit, bit 15 is the least significant bit. Bits
` 13 through 15 are reserved for the Version field. Bits 5 through
` 12 are reserved for future use and MUST be transmitted as zero.
`
`Hanks, Li, Farinacci & Traina [Page 2]
`
`Microsoft
`Ex. 1030 - Page 2
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
` Checksum Present (bit 0)
`
` If the Checksum Present bit is set to 1, then the Checksum field
` is present and contains valid information.
`
` If either the Checksum Present bit or the Routing Present bit are
` set, BOTH the Checksum and Offset fields are present in the GRE
` packet.
`
` Routing Present (bit 1)
`
` If the Routing Present bit is set to 1, then it indicates that the
` Offset and Routing fields are present and contain valid
` information.
`
` If either the Checksum Present bit or the Routing Present bit are
` set, BOTH the Checksum and Offset fields are present in the GRE
` packet.
`
` Key Present (bit 2)
`
` If the Key Present bit is set to 1, then it indicates that the Key
` field is present in the GRE header. Otherwise, the Key field is
` not present in the GRE header.
`
` Sequence Number Present (bit 3)
`
` If the Sequence Number Present bit is set to 1, then it indicates
` that the Sequence Number field is present. Otherwise, the
` Sequence Number field is not present in the GRE header.
`
` Strict Source Route (bit 4)
`
` The meaning of the Strict Source route bit is defined in other
` documents. It is recommended that this bit only be set to 1 if
` all of the the Routing Information consists of Strict Source
` Routes.
`
` Recursion Control (bits 5-7)
`
` Recursion control contains a three bit unsigned integer which
` contains the number of additional encapsulations which are
` permissible. This SHOULD default to zero.
`
` Version Number (bits 13-15)
`
` The Version Number field MUST contain the value 0. Other values
` are outside of the scope of this document.
`
`Hanks, Li, Farinacci & Traina [Page 3]
`
`Microsoft
`Ex. 1030 - Page 3
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
` Protocol Type (2 octets)
`
` The Protocol Type field contains the protocol type of the payload
` packet. In general, the value will be the Ethernet protocol type
` field for the packet. Currently defined protocol types are listed
` below. Additional values may be defined in other documents.
`
` Offset (2 octets)
`
` The offset field indicates the octet offset from the start of the
` Routing field to the first octet of the active Source Route Entry
` to be examined. This field is present if the Routing Present or
` the Checksum Present bit is set to 1, and contains valid
` information only if the Routing Present bit is set to 1.
`
` Checksum (2 octets)
`
` The Checksum field contains the IP (one’s complement) checksum of
` the GRE header and the payload packet. This field is present if
` the Routing Present or the Checksum Present bit is set to 1, and
` contains valid information only if the Checksum Present bit is set
` to 1.
`
` Key (4 octets)
`
` The Key field contains a four octet number which was inserted by
` the encapsulator. It may be used by the receiver to authenticate
` the source of the packet. The techniques for determining
` authenticity are outside of the scope of this document. The Key
` field is only present if the Key Present field is set to 1.
`
` Sequence Number (4 octets)
`
` The Sequence Number field contains an unsigned 32 bit integer
` which is inserted by the encapsulator. It may be used by the
` receiver to establish the order in which packets have been
` transmitted from the encapsulator to the receiver. The exact
` algorithms for the generation of the Sequence Number and the
` semantics of their reception is outside of the scope of this
` document.
`
` Routing (variable)
`
` The Routing field is optional and is present only if the Routing
` Present bit is set to 1.
`
`Hanks, Li, Farinacci & Traina [Page 4]
`
`Microsoft
`Ex. 1030 - Page 4
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
` The Routing field is a list of Source Route Entries (SREs). Each
` SRE has the form:
`
` 0 1 2 3
` 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` | Address Family | SRE Offset | SRE Length |
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
` | Routing Information ...
` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
`
` The routing field is terminated with a "NULL" SRE containing an
` address family of type 0x0000 and a length of 0.
`
` Address Family (2 octets)
`
` The Address Family field contains a two octet value which indicates
` the syntax and semantics of the Routing Information field. The
` values for this field and the corresponding syntax and semantics for
` Routing Information are defined in other documents.
`
` SRE Offset (1 octet)
`
` The SRE Offset field indicates the octet offset from the start of the
` Routing Information field to the first octet of the active entry in
` Source Route Entry to be examined.
`
` SRE Length (1 octet)
`
` The SRE Length field contains the number of octets in the SRE. If
` the SRE Length is 0, this indicates this is the last SRE in the
` Routing field.
`
` Routing Information (variable)
`
` The Routing Information field contains data which may be used in
` routing this packet. The exact semantics of this field is defined in
` other documents.
`
`Forwarding of GRE packets
`
` Normally, a system which is forwarding delivery layer packets will
` not differentiate GRE packets from other packets in any way.
` However, a GRE packet may be received by a system. In this case, the
` system should use some delivery-specific means to determine that this
` is a GRE packet. Once this is determined, the Key, Sequence Number
` and Checksum fields if they contain valid information as indicated by
` the corresponding flags may be checked. If the Routing Present bit
`
`Hanks, Li, Farinacci & Traina [Page 5]
`
`Microsoft
`Ex. 1030 - Page 5
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
` is set to 1, then the Address Family field should be checked to
` determine the semantics and use of the SRE Length, SRE Offset and
` Routing Information fields. The exact semantics for processing a SRE
` for each Address Family is defined in other documents.
`
` Once all SREs have been processed, then the source route is complete,
` the GRE header should be removed, the payload’s TTL MUST be
` decremented (if one exists) and the payload packet should be
` forwarded as a normal packet. The exact forwarding method depends on
` the Protocol Type field.
`
`Current List of Protocol Types
`
` The following are currently assigned protocol types for GRE. Future
` protocol types must be taken from DIX ethernet encoding. For
` historical reasons, a number of other values have been used for some
` protocols. The following table of values MUST be used to identify
` the following protocols:
`
` Protocol Family PTYPE
` --------------- -----
` Reserved 0000
` SNA 0004
` OSI network layer 00FE
` PUP 0200
` XNS 0600
` IP 0800
` Chaos 0804
`RFC 826 ARP 0806
` Frame Relay ARP 0808
` VINES 0BAD
` VINES Echo 0BAE
` VINES Loopback 0BAF
` DECnet (Phase IV) 6003
` Transparent Ethernet Bridging 6558
` Raw Frame Relay 6559
` Apollo Domain 8019
` Ethertalk (Appletalk) 809B
` Novell IPX 8137
`RFC 1144 TCP/IP compression 876B
` IP Autonomous Systems 876C
` Secure Data 876D
` Reserved FFFF
`
` See the IANA list of Ether Types for the complete list of these
` values.
`
` URL = ftp://ftp.isi.edu/in-notes/iana/assignments/ethernet-numbers.
`
`Hanks, Li, Farinacci & Traina [Page 6]
`
`Microsoft
`Ex. 1030 - Page 6
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
`References
`
`RFC 1479
` Steenstrup, M. "Inter-Domain Policy Routing Protocol
` Specification: Version 1", RFC1479, BBN Systems and Technologies,
` July 1993.
`
`RFC 1226
` Kantor, B. "Internet Protocol Encapsulation of AX.25 Frames", RFC
`1226, University of California, San Diego, May 1991.
`
`RFC 1234
` Provan, D. "Tunneling IPX Traffic through IP Networks", RFC 1234,
` Novell, Inc., June 1991.
`
`RFC 1241
` Woodburn, R., and D. Mills, "Scheme for an Internet Encapsulation
` Protocol: Version 1", RFC 1241, SAIC, University of Delaware, July
` 1991.
`
`RFC 1326
` Tsuchiya, P., "Mutual Encapsulation Considered Dangerous", RFC
`1326, Bellcore, May 1992.
`
` SDRP
` Estrin, D., Li, T., and Y. Rekhter, "Source Demand Routing
` Protocol Specification (Version 1)", Work in Progress.
`
`RFC 1702
` Hanks, S., Li, T., Farinacci, D., and P. Traina, "Generic Routing
` Encapsulation over IPv4 networks", RFC 1702, NetSmiths, Ltd.,
` cisco Systems, October 1994.
`
`Security Considerations
`
` Security issues are not discussed in this memo.
`
`Hanks, Li, Farinacci & Traina [Page 7]
`
`Microsoft
`Ex. 1030 - Page 7
`
`

`

`RFC 1701 Generic Routing Encapsulation (GRE) October 1994
`
`Acknowledgements
`
` The authors would like to acknowledge Yakov Rekhter (IBM) and Deborah
` Estrin (USC) for their advice, encouragement and insightful comments.
`
`Authors’ Addresses
`
` Stan Hanks
` NetSmiths, Ltd.
` 2025 Lincoln Highway
` Edison NJ, 08817
`
` EMail: stan@netsmiths.com
`
` Tony Li
` cisco Systems, Inc.
` 1525 O’Brien Drive
` Menlo Park, CA 94025
`
` EMail: tli@cisco.com
`
` Dino Farinacci
` cisco Systems, Inc.
` 1525 O’Brien Drive
` Menlo Park, CA 94025
`
` EMail: dino@cisco.com
`
` Paul Traina
` cisco Systems, Inc.
` 1525 O’Brien Drive
` Menlo Park, CA 94025
`
` EMail: pst@cisco.com
`
`Hanks, Li, Farinacci & Traina [Page 8]
`
`Microsoft
`Ex. 1030 - Page 8
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket