Network Working Group J. Chapman Request For Comments: 1841 Cisco Systems, Inc. Category: Informational D. Coli Cisco Systems, Inc. A. Harvey Cisco Systems, Inc. B. Jensen Cisco Systems, Inc. K. Rowett Cisco Systems, Inc. September 1995 PPP Network Control Protocol for LAN Extension Status of 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 Telecommunications infrastructure is improving to offer higher bandwidth connections at lower cost. Access to the network is changing from modems to more intelligent devices. This informational RFC discusses a PPP Network Control Protocol for one such intelligent device. The protocol is the LAN extension interface protocol. Table of Contents 1.0 Introduction ........................................... 3 1.1 LAN Extension Interface Topology ..................... 4 1.2 LAN Extension Interface Architecture ................. 5 1.3 LAN Extension Interface Protocol ..................... 6 2.0 LAN Extension Interface Protocol Control Packets........ 8 2.1 Startup Options ...................................... 8 2.2 Remote Command Options ............................... 14 2.3 Conditions for Sending PPP-LEX Packet ................ 17 3.0 Filter Protocol Type ................................... 18 3.1 LEX_RCMD_REQUEST - Filter Protocol Type............... 19 3.2 Response Packets - Filter Protocol Type............... 21 4.0 Filter MAC Address ..................................... 22 4.1 LEX_RCMD_REQUEST - Filter MAC Address ................ 23 4.2 Response Packets - Filter MAC Address................. 25
5.0 Set Priority ........................................... 27 5.1 LEX_RCMD_REQUEST - Set Priority ...................... 27 5.2 Response Packets - Set Priority ...................... 29 6.0 Disable LAN Extension Ethernet Interface ............... 30 6.1 LEX_RCMD_REQUEST - Disable LAN Extension Ethernet Interface ................................... 31 6.2 Response Packets - Disable LAN Extension Ethernet Interface ................................... 32 7.0 Enable LAN Extension Ethernet Interface ................ 33 7.1 LEX_RCMD_REQUEST - Enable LAN Extension Ethernet Interface ................................... 33 7.2 Response Packets - Enable LAN Extension Ethernet Interface ................................... 34 8.0 Reboot LAN Extension Interface Unit .................... 35 8.1 LEX_RCMD_REQUEST - Reboot LAN Extension Interface Unit ................................................. 35 8.2 Response Packets - Reboot LAN Extension Interface Unit ....................................... 36 9.0 Request Statistics ..................................... 37 9.1 LEX_RCMD_REQUEST - Request Statistics ................ 37 9.2 LEX_RCMD_ACK - Request Statistics .................... 39 9.3 LEX_RCMD_NAK/LEX_RCMD_REJ - Request Statistics ....... 44 10.0 Download Request ...................................... 45 10.1 LEX_RCMD_REQUEST - Download Request ................. 46 10.2 Response Packets - Download Request.................. 48 11.0 Download Data ......................................... 49 11.1 LEX_RCMD_REQUEST - Download Request ................. 49 11.2 Response Packets - Download Data .................... 51 12.0 Download Status ....................................... 52 12.1 LEX_RCMD_REQUEST - Download Status .................. 53 12.2 LEX_RCMD_ACK - Download Status ...................... 54 12.3 LEX_RCMD_NAK/LEX_RCMD_REJ - Download Status ......... 56 13.0 Inventory Request ..................................... 56 13.1 LEX_RCMD_REQUEST - Inventory Request ................ 57 13.2 LEX_RCMD_ACK - Inventory Request .................... 58 13.3 LEX_RCMD_NAK/LEX_RCMD_REJ - Inventory Request ....... 61 14.0 LAN Extension Interface Protocol Data Packets ......... 62 14.1 Frame Format ........................................ 62 14.2 Summary Field Descriptions........................... 63
NOTES ...................................................... 65 REFERENCES ................................................. 65 SECURITY CONSIDERATIONS .................................... 66 AUTHORS' ADDRESSES ......................................... 66 1.0 Introduction An increasing number of corporations allow their employees to telecommute to work due to local government regulations on traffic and air pollution. Additionally, many businesses are run out of internetworked home offices and small branch offices. With these changes in the workplace, more people and businesses require Internet access from small LANs. Today, routers serve the LAN-to-LAN traffic using high-speed WAN links such as leased lines, ISDN, or Frame Relay. This new breed of Internet users from home offices and small branch offices may have a different, less network-literate skill set than those connecting up to the Internet today. These new users need an alternative to the complex and hard-to-configure routers currently employed for connectivity. One such alternative is a LAN extension interface unit. A LAN extension interface unit is a hardware device installed at remote sites (such as a home office or small branch office) that connects a LAN across a WAN link to a router at a central site. The following sections introduce a LAN extension interface topology, architecture, and protocol.
1.1 LAN Extension Interface Topology Figure 1 shows the topology of LAN extension interfaces. The figure shows two LAN extension interface units connected via a WAN link to a central or "host router." Figure 1 LAN Extension Interface Topology ----------------------------------------- Router ----------------------------------------- Virtual Interface Virtual Interface 123.123.78.1 123.123.89.1 ......................................... Serial 0 Serial n ----------------------------------------- |<---- WAN Link ---->| ------------------ ------------------ | LAN Extension | | LAN Extension | | Interface Unit | | Interface Unit | ------------------ ------------------ | | ------------------ ------------------ | | ------------ ------------ | End node | | End node | ------------ ------------ 123.123.78.2 123.123.46.2 Each LAN extension interface unit maps to a virtual interface at the host router. The virtual interface mirrors the characteristics of the LAN extension interface unit. To the routing protocols, the virtual interface looks just like a local interface, but with the bandwidth of a serial line. The virtual interface keeps the state (up or down) of the LAN extension interface unit, and identifies each LAN extension interface unit by its MAC address. A LAN extension interface protocol transfers MAC frames from the LAN extension interface unit across the serial line to the host router. At the termination point in the router, the router routes the packets. This topology uses only one subnet per remote LAN rather than two, as is the case when routers exist on both ends of a WAN link. Figure 1 shows this subnetting structure. The IP addresses of the virtual interfaces on the router are in the same subnet as the IP addresses of the end nodes on the LAN of the LAN extension interface unit. The LAN extension interface unit itself has no IP address.
LAN extension interface units resemble bridges, but with the following distinct differences: * LAN extension interface units always depend on a host router. They cannot operate standalone or even back-to-back with other LAN extension interface units. * LAN extension interface units need not employ any spanning tree algorithm. * (LAN extension interface units transfer MAC frames across a serial line (like bridges), but a router can either route or bridge the LAN extension interface data packets. 1.2 LAN Extension Interface Architecture Figure 2 shows the basic LAN extension interface architecture. Figure 2 LAN Extension Interface Architecture Router LAN Extension Interface ------------------- ------------------- | Network Layer | | MAC Layer | ------------------- ------------------- | | ------------------- ------------------- | |Virtual Interface| | Filters | | | ------------------- ------------------- | | | | | | ------------------- ------------- | | | PPP | | RCMD | | | | | | Handler | | | ------------------- ------------- | | | | | | ------------------- ------------------- | | |Serial Interface | | PPP | | | ------------------- ------------------- | | | | | | | ------------------- | | | | Serial Interface| | | | ------------------- | | | WAN Link | | | --------------------------------------- | | | | Outbound Inbound | --------------> <---------------
In the inbound direction (from the remote LAN, to the LAN extension interface unit, across the WAN link, to the host router), the LAN extension interface unit can filter received frames to optimize WAN utilization. The LAN extension interface unit can filter frames by protocol type or by MAC address. Frames that pass through the LAN extension interface filters go to the WAN protocol state machine. In Figure 2, this state machine is PPP. The LAN extension interface unit adds PPP encapsulation and forwards the packet to the router via the WAN serial link. Upon receiving the frame, the host router decapsulates the PPP header and passes the packet to the virtual interface. From there the virtual interface handles the packet like any packet received on a local interface -- by routing or bridging the packet to another interface, depending on configuration. In the outbound direction (from the host router, across the WAN link, to the LAN extension interface unit, to the LAN), the host router's virtual interface builds the full MAC header, before adding PPP encapsulation. The router then sends the packet across the WAN serial link to the LAN extension interface unit. The LAN extension interface unit strips the PPP header and forwards the packet directly onto the LAN. The host router has already determined that the packet needs to be forwarded to the LAN extension interface unit, hence there is no need for additional filtering or processing at that end. Embedded in the data stream is a control stream for configuring and managing the LAN extension interface unit from the host router. The virtual interface makes the remote LAN extension interface unit appear like a local router interface to the routing protocols. Configuration commands and statistics gathering commands are issued on the router to the virtual interface. The virtual interface formats the LAN extension interface remote commands into encoded messages and transfers them in-band with the data packets. The LAN extension interface unit decodes the remote commands and executes them. Responses are similarly formatted messages sent by the LAN extension interface unit to the host router. The remote command messages use a different encapsulation type than the data packets, as described later in this document in the "LAN Extension Interface Protocol Control Packets" and "LAN Extension Interface Protocol Data Packets" sections. 1.3 LAN Extension Interface Protocol To accommodate this LAN extension interface architecture, a new Network Control Protocol (NCP) for PPP exists. This NCP is called PPP-LEX. The basic functionality of PPP-LEX is to encapsulate LAN
extension interface control and data packets. The IETF has assigned two new protocol types for these functions, as shown in Table 1. Table 1 IETF Protocol Types for PPP-LEX Protocol Type Function 0x8041 Encapsulates control packets 0x0041 Encapsulates data packets (MAC frames) PPP is a natural choice for a LAN extension interface protocol because it allows for negotiating a specific control protocol and options at connection time. This means that network administrators do not have to statically configure the router interface for remote interfaces. Rather, remote interfaces negotiate the link at connection time. The LAN extension interface protocol employs PPP link operation as described in RFC 1331, which reads as follows: In order to establish communications of a point-to-point link, each end of the PPP link must first send [Link Control Protocol] LCP packets to configure and test the data link. After the link has been established,the peer may be authenticated. Then PPP must send NCP packets to choose and configure one or more network layer protocols. Once each of the chosen network-layer protocols has been configured, datagrams from each network layer protocol can be sent over the link. The link will remain configured for communications until explicit LCP or NCP packets close the link down, or until some external event occurs (an inactivity timer expires or network administrator intervention). (References, [1]) Thus, the LAN extension interface unit and the host router exchange PPP-LCP packets at connection time to dynamically configure and test the WAN serial link. Once the link reaches an "opened" state, the LAN extension interface unit and host router exchange PPP-LEX NCP packets to configure the LAN extension interface protocol. Once it is configured, the NCP (PPP-LEX) reaches an "opened" state, and PPP carries the PPP-LEX control and data packets across the serial link. At this point, link traffic is a any combination of LCPs, PPP-LEX NCPs, PPP-LEX control packets, and PPP-LEX data packets. Note that the LAN extension interface protocol is not a bridging protocol. The only similarity to the PPP Bridging Control Protocol (References. [2]) is that the LAN extension interface protocol also encapsulates MAC frames.
The following sections detail PPP-LEX control packets and data packets. 2.0 LAN Extension Interface Protocol Control Packets There are two types of PPP-LEX control packets, as follows: * Startup options packet * Remote command options packets The startup options packet is the first PPP-LEX NCP packet that the LAN extension interface unit sends to the host router after the LCP has reached an "opened" state. This required startup options packet configures the LAN extension interface protocol and puts the PPP-LEX NCP in an "opened" state. Remote command options are the PPP-LEX NCP packets that control the functioning and statistics gathering of the LAN extension interface protocol. 2.1 Startup Options The LAN extension interface unit sends a startup options packet to the host router to negotiate the following startup options: * MAC Type * MAC Address * LAN Extension The MAC Type startup option informs the host router of the type of media that the LAN extension interface unit is connected to. For example, the LAN extension interface unit may be connected to an Ethernet LAN or a Token Ring LAN. Currently, only Ethernet is supported. The MAC type tells the host router what type of traffic the LAN extension interface unit is prepared to receive. If the host router rejects the MAC type, the LAN extension interface unit sends the Configure-Request again. The MAC Address startup option sends the MAC address of the LAN extension interface unit to the host router to authenticate the LAN extension interface unit and bind it to the corresponding virtual interface at the host router. The host router also inserts the MAC address in outbound packets. The MAC address is represented in IEEE 802.3 canonical format. The LAN Extension startup option establishes the network layer protocol (NCP) as PPP-LEX and provides the host router with the LAN extension interface protocol version number.
Each startup option is transmitted in a series of three fields: Option-Type, Option-Length, and Option-Data fields. The fields are concatenated in the startup options Configure-Request packet. Frame Format Figure 3 shows a summary of the frame format for the startup options packet. The LAN extension interface unit sends this startup options packet to the host router. The LAN extension interface unit transmits these fields from left to right. Figure 3 Startup Options Frame Format (Configure-Request) PPP Header <--------------------------------------------------------------> 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 | Control | Protocol Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1 octet) (1) (2) LAN Extension Interface Protocol Header <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1 octet) (1) (2) LAN Extension Interface Startup Options <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option-Type | Option-Length | Option-Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1 octet) (1) Address This PPP-specified field is one octet and contains the binary sequence 11111111 (hexadecimal 0xFF), the All-Stations address. PPP does not assign individual station addresses. The All-Stations address must be recognized and received by all devices. For more information on this field, refer to "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point- to-Point Links." (References, [1])
Control This PPP-specified field is one octet and contains the binary sequence 00000011 (hexadecimal 0x03), the Unnumbered Information (UI) command with the P/F bit set to zero. For more information on this field, refer to "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to Point Links." (References, [1]) Protocol-Type The Protocol-Type field is two octets and contains the IETF-assigned protocol type value. Valid LAN extension interface protocol type values are as follows: * 0x8041 (for control packets) * 0x0041 (for data packets) Because the startup options packet encapsulates LAN extension interface control data, the valid value for this field is 0x8041. Code The Code field is one octet and identifies the type of LCP packet that the LAN extension interface packet is sending. Valid values are as follows: * 0x01 - Configure-Request * 0x02 - Configure-Ack * 0x03 - Configure-Nak * 0x04 - Configure-Rej The LAN extension interface unit initiates the startup options packet; therefore, the valid value for this field is 1. Identifier The Identifier field is one octet and contains a randomly generated value. The value aids matching requests and replies. It is recommended that a non-zero value be used for the identifier. That is, zero could be used in the future for unsolicited messages from the LAN extension interface unit. Valid values are 0x01-0xFF.
Length The Length field is two octets and indicates the length of the entire packet in octets, including the Code, Identifier, Length, and startup options fields. Option-Type The Option-Type field is one octet and identifies the startup option being negotiated. Valid values are as follows: * 0x01 - MAC Type * 0x03 - MAC Address * 0x05 - LAN Extension Option-Length The Option-Length field is one octet and specifies the length of the startup option fields, including the Option-Type, Option-Data, and Option-Length fields. Option-Data The Option-Data field contains the data relating to the value specified in the Option-Type field. That is, if the Option-Type field specifies MAC type (0x01), then the Option-Data field contains the MAC type (Ethernet, Token Ring, and so on). If the Option-Type field specifies MAC address (0x03), then the Option-Data field contains the actual MAC address. If the Option-Type field specifies LAN Extension (0x05), then the Option-Data field contains LAN extension interface software information. The following table defines the contents of the Option-Data field for each possible Option-Type field value: Option-Type Field Value Option-Data 0x01 (MAC Type) The most up-to-date value of the MAC type as specified in the most recent "Assigned Numbers" RFC. The current valid value from that RFC follows: * 0x01: IEEE 802.3/Ethernet with canonical addresses 0x03 (MAC Address) The burned-in MAC address in IEEE 802.3 canonical format. 0x05 (LAN Extension) The LAN extension interface protocol version number. 0x01 is the current protocol version supported.
Example In the Configure-Request packet that it sends to the host router, the LAN extension interface unit concatenates the Option-Type, Option- Data, and Option-Length fields for each startup option, as shown in Figure 4. The LAN extension interface unit transmits these fields from left to right. Figure 4 Sample Startup Options Configure-Request Packet PPP Header <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0xFF | 0x03 | 0x8041 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Address Control Protocol-Type LAN Extension Interface Protocol Header <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x01 | 0x09 | 0x12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Type Identifier Length LAN Extension Interface Startup Options <------------------------------------------------ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x01 | 0x03 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Type Option-Length ------------------------------> 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0x01 | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Data
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x03 | 0x08 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Type Option-Length | 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0A 0A 0A 0A 0B 0C | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---------- Option-Data --------| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x05 | 0x03 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Type Option-Length 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0x01 | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Data In Figure 4, the Address field always contains 0xFF, and the Control field always contains 0x03. The Protocol-Type field value is 0x8041 because the startup options packet is a LAN extension interface control packet. The Code field value is 0x01 because the LAN extension interface unit is sending an LCP Configure-Request packet to configure or negotiate PPP-LEX. The Identifier field contains a randomly generated number. The Length field gives the total length of the entire packet. The first startup option is the MAC Type startup option. The Option- Type value for MAC Type is 0x01. The Option-Length field value for the MAC type startup option is 3 octets. The Option-Data field value is 0x01 because, in this example, the LAN extension interface unit connects to an Ethernet LAN using 802.3 canonical addresses. The next startup option transmitted is the MAC Address. Its Option- Type field value is 0x03, its Option-Length field value is 8 octets, and its Option-Data field value is the actual MAC address. Lastly, the LAN Extension startup option is transmitted. Its Option- Type field value is 0x05, its Option-Length field value is 3 octets, and its Option-Data field value is the LAN extension interface protocol version number (0x01).
The host router responds to this LCP Configure-Request packet with an LCP Configure-Ack packet, Configure-Nak packet, or Configure-Rej packet. For more information on these packets, refer to "The Point- to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to-Point Links" RFC. (References, [1]) 2.2 Remote Command Options Once the host router responds to the startup options Configure- Request packet with a Configure-Ack packet, the PPP-LEX NCP is in an "opened" state, and the LAN extension interface unit and the host router freely exchange PPP-LEX data packets and remote command options packets. The host router initiates PPP-LEX remote command options packets to control the configuration of the LAN extension interface unit and to gather statistics. There are 11 types of remote command options that the host router can send in a LEX_RCMD_REQUEST packet to the LAN extension interface unit. The LAN extension interface unit responds to a LEX_RCMD_REQUEST packet with a LEX_RCMD_ACK, LEX_RCMD_NAK, or LEX_RCMD_REJ packet. Frame Format Figure 5 shows a summary of the frame format for a remote command options packet. These fields are transmitted from left to right. Figure 5 Remote Command Options Frame Format PPP Header <--------------------------------------------------------------> 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 | Control | Protocol Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1 octet) (1) (2) LAN Extension Interface Protocol Header <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1 octet) (1) (2)
LAN Extension Interface Remote Command Options <-------------------------------- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option-Type | Option-Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1 octet) (1) ----------------------------------------------> 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Length | Option-Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (2) Address This PPP-specified field is a single octet and contains the binary sequence 11111111 (hexadecimal 0xFF), the All-Stations address. PPP does not assign individual station addresses. The All-Stations address must be recognized and received by all devices. For more information on this field, refer to "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point- to-Point Links." (References, [1]) Control This PPP-specified field is a single octet and contains the binary sequence 00000011 (hexadecimal 0x03), the Unnumbered Information (UI) command with the P/F bit set to zero. For more information on this field, refer to "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to Point Links." (References, [1]) Note: Hereafter the Address and Control fields will be represented together as a 2-octet field containing "0xFF03". Protocol-Type The Protocol-Type field is two octets and contains the IETF-assigned protocol type value. Valid LAN extension interface protocol type values follow: * 0x8041 (for control packets) * 0x0041 (for data packets)
Because the remote command options packet encapsulates LAN extension interface control data, the valid value for this field is 0x8041. Code The Code field is one octet and identifies the type of PPP-LEX packet. Valid values are as follows: * 0x40 - LEX_RCMD_REQUEST packet * 0x41 - LEX_RCMD_ ACK packet * 0x42 - LEX_RCMD_NAK packet * 0x43 - LEX_RCMD_REJ packet The host router sends the LEX_RCMD_REQUEST packet, and the LAN extension interface unit sends the LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets. Identifier The Identifier field is one octet and contains a randomly generated value. The value aids matching requests and replies. It is recommended that a non-zero value be used for the identifier. That is, zero could be used in the future for unsolicited messages from the LAN extension interface unit. Valid values are 0x01-0xFF. Length The Length field is two octets and indicates the length in octets of the entire packet, including the Code, Identifier, Length, and remote command options fields. Option-Type The Option-Type field is one octet and identifies the remote command option being transmitted. Valid values are as follows: * 0x01 - Filter Protocol Type * 0x02 - Filter MAC Address * 0x03 - Set Priority * 0x04 - Disable LAN Extension Ethernet Interface * 0x05 - Enable LAN Extension Ethernet Interface * 0x06 - Reboot LAN Extension Interface Unit * 0x07 - Request Statistics * 0x08 - Download Request * 0x09 - Download Data * 0x0A - Download Status * 0x0B- Inventory Request
Each remote command option is discussed in detail in its own section later in this document. Option-Flags This field is one octet and further specifies the remote command option, containing specific actions that must be followed. Option-Length The Option-Length field is two octets and specifies the length in octets of the remote command option fields, including the Option- Type, Option-Flags, Option-Length, and Option-Data fields. Option-Data Option-Data field contains data relating to the remote command option specified in the Option-Type field. 2.3 Conditions for Sending PPP-LEX Packet This section describes the general conditions under which PPP-LEX packet types are sent. For specific information by remote command, refer to the appropriate remote command section later in this document. LEX RCMD_REQUEST Packet The host router sends LEX_RCMD_REQUEST packets to the LAN extension interface unit to initiate a remote command request. Until the host router receives a LEX_RCMD_ACK, LEX_RCMD_NAK, or LEX_RCMD_REJ packet from the LAN extension interface unit, the host router continues to send the LEX_RCMD_REQUEST packet a default number of times, at which point the host router times out. LEX_RCMD_ACK Packet The LAN extension interface unit responds to a LEX_RCMD_REQUEST packet with a LEX_RCMD_ACK packet when it correctly receives the request and is able to perform the request. LEX RCMD_NAK Packet The LAN extension interface unit responds to a LEX_RCMD_REQUEST packet with a LEX_RCMD_NAK packet when the LAN extension interface unit recognizes all the elements of the remote command option, but some elements are not acceptable. Upon receipt of a LEX_RCMD_NAK packet, the host router immediately stops sending the request.
LEX RCMD_REJ Packet The LAN extension interface unit responds to a LEX_RCMD_REQUEST packet with a LEX_RCMD_REJ packet when the Option-Type value in the request packet is invalid. Invalid Option-Type values are those less than 0x01 or greater than 0x0B. Currently, this is the only condition under which the LAN extension interface unit sends a LEX_RCMD_REJ packet. Upon receipt of a LEX_RCMD_REJ packet, the host router immediately stops sending the request. The following sections detail each of the 11 remote command options. The sections provide a general description of the option and then specify the option's Option-Type, Option-Flags, Option-Length, and Option-Data fields. In addition, the sections describe the return messages from the LAN extension interface unit. 3.0 Filter Protocol Type The host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x01 to the LAN extension interface unit to configure the LAN extension interface unit to filter inbound packets by protocol type. A protocol type filter determines whether or not the LAN extension interface unit forwards packets of a specific protocol type to the host router. A protocol type filter consists of a 16-bit value, 16- bit mask, and a permit or deny field. (See the "Option-Data Field Descriptions" section for more information on these filter fields.) A LEX_RCMD_REQUEST packet can contain 0 to 200 (depending on MTU size) protocol type filters. When a LEX_RCMD_REQUEST packet contains multiple filters, they are concatenated. The LAN extension interface unit applies the protocol type filters to each inbound packet's protocol type field in the order in which the filters exist in the filter table. A packet must be permitted by one of the filters before the LAN extension interface unit can forward the packet across the serial link. The following example is a filtering algorithm: if (protocol_type_field & (~filter_mask)) == filter_value) if (permit/deny_field == PERMIT) <forward packet on serial LAN> else <DROP PACKET> The protocol type filter should also be applied to the DIX type code field of Ethernet II frames as well as to IEEE 802.2 SNAP packets.
3.1 LEX RCMD_REQUEST-Filter Protocol Type Figure 6 shows a frame format summary of a LEX_RCMD_REQUEST packet for the Filter Protocol Type remote command option. The host router transmits the fields from left to right. Figure 6 LEX_RCMD_REQUEST Packet Frame Format - Filter Protocol Type PPP Header <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0xFF03 | Protocol-Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (2 octets) (2) LAN Extension Interface Protocol Header <--------------------------------------------------------------> 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1) (1) (2) LAN Extension Interface Remote Command Options <-------------------------------- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option-Type | Option-Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (1) (1) ----------------------------------------------> 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Option-Length | Option-Data | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (2) Where the Option-Data field contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value (16 bits) | Value (16 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Permit/Deny (16 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Summary Field Descriptions For a complete description of the fields in the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Options, refer to the "Remote Command Options" section earlier in this document. The following table provides a summary of these fields when sending a LEX_RCMD_REQUEST packet that configures the LAN extension interface unit to filter by protocol type. Table 2 Field Values for LEX_RCMD_REQUEST Packet-Filter Protocol Type Field Value Address/Control 0xFF03 (Broadcast address/Unnumbered information) Protocol-Type 0x8041 (Control packet) Code 0x40 (LEX_RCMD_REQUEST packet) Identifier Valid values: 0x01-0xFF Length Minimum length = 12 octets Maximum length = 1212 octets Option-Type 0x01 (Filter Protocol Type) Option-Flags None Option-Length Minimum length = 4 octets Maximum length = 1204 octets Option-Data Zero or more filters to be applied at the LAN extension interface unit. See the following "Option-Data Field Descriptions" for details. Option-Data Field Descriptions The following three Option-Data fields are used in conjunction to specify a protocol type filter: * Value The Value field contains a 16-bit value that is any Ethernet type code. Refer to the "Assigned Numbers" RFC for valid Ethernet type codes. (References, [4]). * Mask The Mask field contains a 16-bit "wild card" mask. That is, this field contains a 16-bit number whose ones bits correspond to the type code bits to be ignored during the comparison. Thus, the mask excludes bits from the comparison in the protocol type filter.
* Permit/Deny The Permit/Deny field determines whether a protocol type filter permits or denies inbound frames to pass to the host router. A permit value is a non-zero value that allows frames of a specific protocol type to pass to the host router. A deny value is a zero value that does not allow frames of a specific protocol type to pass to the host router. Implementation Notes Each LEX_RCMD_REQUEST packet is a complete specification of all protocol type filters and replaces any previously established filters. Note the following special cases: * A LEX_RCMD_REQUEST packet with an Option-Length field equal to four (without any filter entries) instructs the LAN extension interface unit to turn off protocol type filtering. All MAC protocol types are forwarded. * A LEX_RCMD_REQUEST packet with a filter entry of 0x0000 in the Value field, 0xFFFF in the Mask field, and a positive value in the Permit/Deny field means that if previous filters in the filter list do not permit the inbound packet then this filter entry will. This filter entry is typically the last filter in a list of filters contained within the Option-Data field. * A LEX_RCMD_REQUEST packet with a filter entry of 0x0000 in the Value field, 0xFFFF in the Mask field, and a zero in the Permit/Deny field, means that the LAN extension interface unit must deny all protocol types. This filter is typically the last filter in a list of filters contained within the Option-Data field. 3.2 Response Packets - Filter Protocol Type The following packets are valid responses to the Filter Protocol Type LEX_RCMD_REQUEST packet: * LEX_RCMD_ACK - Filter Protocol Type The LAN extension interface unit sends a LEX_RCMD_ACK packet in response to the Filter Protocol Type LEX_RCMD_REQUEST packet when the LAN extension interface unit correctly receives the Filter Protocol Type remote command option and applies all filter entries to its filter table. All filter entries are returned to the host router in the LEX_RCMD_ACK packet.
* LEX_RCMD_NAK - Filter Protocol Type The LAN extension interface unit sends a LEX_RCMD_NAK packet in response to the Filter Protocol Type LEX_RCMD_REQUEST packet when the request contains an incorrect number of bytes in the filter or when there are no more filter entries available. The LAN extension interface unit continues to use the previous filter table (that is, the filter table that existed prior to the receipt of the request). The host router should signal an error to the user/network administrator. All filter entries are returned to the host router in the LEX_RCMD_NAK packet. * LEX_RCMD-REJ - Filter Protocol Type See the "Conditions for Sending PPP-LEX Packets" section earlier in this document for more information on this packet type. Table 3 summarizes the field values of Filter Protocol Type LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets. Table 3 Field Values for Response Packets - Filter Protocol Type Field Value Address/Control 0xFF03 (Broadcast address/Unnumbered information) Protocol-Type 0x8041 (Control packet) Code Valid values: * 0x41 (LEX_RCMD_ACK packet) * 0x42 (LEX_RCMD_NAK packet) * 0x43 (LEX_RCMD_REJ packet) Identifier The same value as that sent by the LEX_RCMD_REQUEST packet Length The same value as that sent by the LEX_RCMD_REQUEST packet Option-Type 0x01 (Filter Protocol Type) Option-Flags None Option-Length The same value as that sent by the LEX_RCMD_REQUEST packet Option-Data The filter entries sent in the LEX_RCMD_REQUEST packet