RFC 1841

PPP Network Control Protocol for LAN Extension

๐Ÿ“… published September 1995, from ietf

PPP Network Control Protocol for LAN Extension ๐ŸŽ€

Okay bestie, this is RFC 1841, and it's a super cute informational doc ๐Ÿ’… Here's the title block tea โ˜•:

  • Series: Network Working Group
  • Request For Comments: 1841
  • Category: Informational
  • Authors: J. Chapman, D. Coli, A. Harvey, B. Jensen, and K. Rowett, all from Cisco Systems, Inc.
  • Date: September 1995
  • Obsoletes/Updates: The title block doesn't list any RFCs that it obsoletes or updates ๐Ÿ™ˆ

It's titled PPP Network Control Protocol for LAN Extension โœจ


Status of Memo ๐Ÿ“

Okay so this memo is just here to inform the Internet community ๐ŸŒˆ It is NOT an Internet standard of any kind, and it's giving open-access energy because distribution is unlimited ๐Ÿซถ

Abstract ๐ŸŒธ

Telecom infrastructure keeps getting better and offers faster connections for less money ๐Ÿ’ธ Meanwhile, the way people get online is shifting from plain old modems to smarter devices ๐Ÿง  This informational RFC is all about a PPP Network Control Protocol for one of those smart devices, and that 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 ๐Ÿ’–

Okay so more and more companies are letting their employees telecommute, because local governments have rules about traffic and air pollution ๐Ÿš—๐Ÿ’จ Plus, lots of businesses are run out of home offices that are connected to the internet, and small branch offices too ๐Ÿ  With all these changes at work, more people and businesses need internet access from small LANs ๐Ÿ’ป

Right now, routers handle LAN-to-LAN traffic over high-speed WAN links like leased lines, ISDN, or Frame Relay ๐Ÿ›œ The new crowd of internet users coming from home offices and small branch offices might have different, less network-savvy skills than the people connecting today ๐Ÿฅบ These new users need something better than the complicated, hard-to-configure routers we've been using, and one option is a LAN extension interface unit ๐ŸŽ€

A LAN extension interface unit is a hardware device installed at remote sites (like a home office or small branch office) that connects a LAN across a WAN link to a router at a central site ๐ŸŒŸ The next sections introduce the LAN extension interface topology, architecture, and protocol โœจ

1.1 LAN Extension Interface Topology ๐Ÿฆ‹

Figure 1 shows the topology of LAN extension interfaces ๐Ÿ“Š It 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 on the host router ๐Ÿชž That virtual interface mirrors the characteristics of its LAN extension interface unit ๐Ÿ’… To the routing protocols, the virtual interface looks just like a local interface, except it has the bandwidth of a serial line ๐Ÿงš The virtual interface keeps track of whether its LAN extension interface unit is up or down, and it identifies each unit by its MAC address ๐Ÿ”‘

A LAN extension interface protocol moves MAC frames from the LAN extension interface unit across the serial line to the host router ๐Ÿš€ Once they reach the termination point in the router, the router routes the packets ๐Ÿ—บ๏ธ This topology uses only one subnet per remote LAN instead of two, which is what happens when routers sit 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 kinda resemble bridges, but there are a few big 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 don't need to use any spanning tree algorithm ๐Ÿ™…โ€โ™€๏ธ
  • LAN extension interface units move MAC frames across a serial line (like bridges do), but a router can either route or bridge the LAN extension interface data packets ๐Ÿ”€

1.2 LAN Extension Interface Architecture โœจ

okay so bestie, here's the big picture ๐Ÿงš Figure 2 lays out the whole LAN extension interface architecture, and it's giving organized chaos in the best way ๐Ÿ’…

               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   |
     -------------->                                  <---------------

so inbound traffic goes from the remote LAN, to the LAN extension interface unit, across the WAN link, and finally to the host router ๐Ÿš—๐Ÿ’จ. The LAN extension interface unit can filter received frames to keep the WAN nice and efficient ๐Ÿฆ‹ It can filter by protocol type or by MAC address. Frames that make it through the filters head to the WAN protocol state machine, which in Figure 2 is PPP. Then the unit adds PPP encapsulation and forwards the packet to the router over the WAN serial link. โœจ

When the frame lands, the host router strips off the PPP header and hands the packet to the virtual interface. From there, the virtual interface treats it just like any packet that came in on a local interface ๐Ÿ’– That means routing or bridging it to another interface, depending on how it's configured.

Now the outbound direction ๐ŸŒธ (from the host router, across the WAN link, to the LAN extension interface unit, and then onto the LAN). The host router's virtual interface builds the full MAC header before adding PPP encapsulation. Then the packet goes over the WAN serial link to the LAN extension interface unit. That unit strips the PPP header and forwards the packet straight onto the LAN. The host router has already figured out that the packet needs to go to the LAN extension interface unit, so there's no need for extra filtering or processing on that end. Efficient queen behavior ๐Ÿ‘‘

The data stream also carries a control stream, which is how the host router configures and manages the LAN extension interface unit. The virtual interface makes the remote unit look like a local router interface to the routing protocols. Super iconic ๐ŸŽ€

Configuration commands and statistics-gathering commands get issued on the router to the virtual interface. The virtual interface formats these remote commands into encoded messages and sends them in-band, mixed in with the data packets ๐Ÿ’… The LAN extension interface unit decodes the remote commands and runs them. Responses come back the same way, as formatted messages sent from the LAN extension interface unit to the host router. The remote command messages use a different encapsulation type than the data packets. You'll see more on this later, in the "LAN Extension Interface Protocol Control Packets" and "LAN Extension Interface Protocol Data Packets" sections ๐Ÿงšโœจ

1.3 LAN Extension Interface Protocol ๐ŸŽ€

okay so the new piece here is a Network Control Protocol (NCP) for PPP, and it's called PPP-LEX ๐Ÿ’– Its main job is to encapsulate LAN extension interface control packets and data packets. The IETF assigned two new protocol types for these jobs, 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 the natural choice here, and honestly it's so smart ๐Ÿง  It lets the two ends negotiate a specific control protocol and its options at connection time. That means network admins don't have to statically configure the router interface for each remote interface. Instead, the remote interfaces negotiate the link when they connect โœจ

The LAN extension interface protocol uses PPP link operation as described in RFC 1331. Here's what that says, verbatim ๐Ÿซถ

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])

so, putting it together: the LAN extension interface unit and the host router swap PPP-LCP packets at connection time to dynamically configure and test the WAN serial link ๐Ÿ”ฅ Once the link hits an "opened" state, they swap PPP-LEX NCP packets to configure the LAN extension interface protocol. When that NCP reaches "opened" too, PPP carries the PPP-LEX control and data packets across the serial link. From that point on, the link can carry any combination of LCPs, PPP-LEX NCPs, PPP-LEX control packets, and PPP-LEX data packets. Main character energy ๐Ÿ’œ

Quick note, bestie: the LAN extension interface protocol is not a bridging protocol ๐Ÿ™ˆ The only thing it shares with the PPP Bridging Control Protocol (References. [2]) is that it also encapsulates MAC frames. Don't mix them up!

The next sections dig into PPP-LEX control packets and data packets ๐Ÿฆ‹

2.0 LAN Extension Interface Protocol Control Packets ๐Ÿ’…

There are two types of PPP-LEX control packets:

  • 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 LCP reaches an "opened" state. This required startup options packet configures the LAN extension interface protocol and puts the PPP-LEX NCP into an "opened" state ๐ŸŒŸ

Remote command options are the PPP-LEX NCP packets that control how the LAN extension interface protocol functions and how its statistics get gathered ๐Ÿ“Š

2.1 Startup Options ๐ŸŒธ

The LAN extension interface unit sends a startup options packet to the host router to negotiate these startup options:

  • MAC Type
  • MAC Address
  • LAN Extension

The MAC Type startup option tells the host router what kind of media the LAN extension interface unit is hooked up to. For example, the unit might be connected to an Ethernet LAN or a Token Ring LAN. Right now, only Ethernet is supported ๐Ÿซ  The MAC type tells the host router what kind of traffic the unit is ready 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. This does two jobs: it authenticates the unit, and it binds the unit to the matching virtual interface on the host router ๐Ÿ” The host router also inserts that MAC address into outbound packets. The MAC address is written in IEEE 802.3 canonical format.

The LAN Extension startup option sets the network layer protocol (NCP) to PPP-LEX and gives the host router the LAN extension interface protocol version number ๐ŸŽ€

Each startup option is sent as a series of three fields: Option-Type, Option-Length, and Option-Data fields. These fields get concatenated in the startup options Configure-Request packet โœจ

Frame Format ๐Ÿฆ‹

Figure 3 gives you a summary of the frame format for the startup options packet. The LAN extension interface unit sends this packet to the host router, and it transmits the 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          |

Okay so the Address field is up first, and bestie, it's giving very simple energy ๐ŸŽ€

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     (1 octet)          (1)

Address ๐Ÿ’– This one is a PPP-specified field. It's one octet long and holds the binary sequence 11111111 (hex 0xFF), which is the All-Stations address. PPP doesn't hand out individual station addresses, so this is the only one you'll see. The All-Stations address must be recognized and received by all devices, no exceptions ๐Ÿซถ If you want the full tea on this field, check out "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to-Point Links." (References, [1])

Control โœจ Also PPP-specified, one octet, and it holds the binary sequence 00000011 (hex 0x03). That's the Unnumbered Information (UI) command with the P/F bit set to zero. For more info, go read "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to Point Links." (References, [1]) ๐Ÿ“š

Protocol-Type ๐ŸŒธ This one is two octets and holds the IETF-assigned protocol type value. The valid LAN extension interface protocol type values are:

  • 0x8041 (for control packets)
  • 0x0041 (for data packets)

Since the startup options packet is wrapping LAN extension interface control data, the only valid value for this field is 0x8041. Simple and iconic ๐Ÿ‘‘

Code ๐Ÿฆ‹ One octet that tells you what type of LCP packet the LAN extension interface packet is sending. The valid values are:

  • 0x01 - Configure-Request
  • 0x02 - Configure-Ack
  • 0x03 - Configure-Nak
  • 0x04 - Configure-Rej

The LAN extension interface unit is the one that kicks off the startup options packet, so for this field the valid value is 1. It's literally always going to be 1 here ๐Ÿ’…

Identifier ๐Ÿงš One octet that holds a randomly generated value. This value helps match requests with their replies, which is so smart. It is recommended that a non-zero value be used for the identifier. Zero could be used in the future for unsolicited messages from the LAN extension interface unit, so keep that in mind ๐Ÿ™ˆ Valid values are 0x01-0xFF.

Length ๐Ÿ“ Two octets, and it tells you the length of the entire packet in octets. That includes the Code, Identifier, Length, and startup options fields. Everything counted, no cap โœจ

Option-Type ๐Ÿ’œ One octet that identifies the startup option being negotiated. The valid values are:

  • 0x01 - MAC Type
  • 0x03 - MAC Address
  • 0x05 - LAN Extension

Option-Length ๐ŸŒˆ One octet that specifies the length of the startup option fields. That count includes the Option-Type, Option-Data, and Option-Length fields themselves, so it's a whole package ๐ŸŽ€

Option-Data ๐Ÿ‘‘ This is where the actual data for the Option-Type value lives. If the Option-Type is MAC type (0x01), then Option-Data holds the MAC type, like Ethernet, Token Ring, and so on. If the Option-Type is MAC address (0x03), then Option-Data holds the actual MAC address. If the Option-Type is LAN Extension (0x05), then Option-Data holds LAN extension interface software information. Here's the table that spells out each Option-Type value and what its Option-Data contains:

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 ๐Ÿง Okay, time for the fun part! In the Configure-Request packet that the LAN extension interface unit sends to the host router, it concatenates the Option-Type, Option-Data, and Option-Length fields for each startup option. You can see it in Figure 4. And it transmits these fields from left to right, so no skipping ahead ๐Ÿ™ˆ

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 holds 0xFF and the Control field always holds 0x03, every time ๐Ÿ’– The Protocol-Type is 0x8041 because the startup options packet is a LAN extension interface control packet. The Code field is 0x01 because the LAN extension interface unit is sending an LCP Configure-Request packet to configure or negotiate PPP-LEX. The Identifier field holds a randomly generated number, and the Length field gives the total length of the entire packet.

The first startup option is the MAC Type one. Its Option-Type value is 0x01, and its Option-Length value is 3 octets. In this example, the Option-Data value is 0x01 because the LAN extension interface unit connects to an Ethernet LAN using 802.3 canonical addresses ๐Ÿงš

Next up is the MAC Address startup option. Its Option-Type value is 0x03, its Option-Length value is 8 octets, and its Option-Data value is the actual MAC address ๐ŸŒธ

Lastly, the LAN Extension startup option gets sent. Its Option-Type value is 0x05, its Option-Length value is 3 octets, and its Option-Data 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, a Configure-Nak packet, or a Configure-Rej packet. If you want more details on those, go check "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 answers the startup options Configure-Request packet with a Configure-Ack packet, the PPP-LEX NCP is in an "opened" state. At that point, the LAN extension interface unit and the host router freely swap PPP-LEX data packets and remote command options packets. Main character energy ๐Ÿ‘‘

The host router starts the PPP-LEX remote command options packets to control how the LAN extension interface unit is configured 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 unit replies to a LEX_RCMD_REQUEST packet with a LEX_RCMD_ACK, LEX_RCMD_NAK, or LEX_RCMD_REJ packet ๐Ÿ’…

Frame Format ๐Ÿฆ‹

Figure 5 is 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 |

2.2 Remote Command Options (continued) โœจ

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     (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 ๐ŸŽ€

okay so the Address field is a single octet, and it's always 11111111 (that's 0xFF in hex). That's the All-Stations address ๐ŸŒธ PPP doesn't hand out individual station addresses, so this one is basically the "hey everyone" address. The All-Stations address must be recognized and received by all devices, no exceptions bestie. For more info on this field, check "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to-Point Links." (References, [1])

Control ๐Ÿฆ‹

This one is also a single octet from PPP, and it's 00000011 (hex 0x03), which is the Unnumbered Information (UI) command with the P/F bit set to zero. Iconic.

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: from here on, the Address and Control fields get treated as one 2-octet field that reads 0xFF03. Easy peasy ๐Ÿ’…

Protocol-Type ๐Ÿ’œ

The Protocol-Type field is two octets, and it holds the IETF-assigned protocol type value. The valid LAN extension interface protocol type values are:

  • 0x8041 (for control packets) ๐Ÿซถ
  • 0x0041 (for data packets) โœจ

Since the remote command options packet is wrapping up LAN extension interface control data, the only valid value for this field is 0x8041. No cap.

Code ๐Ÿ”ฅ

The Code field is one octet and tells you what type of PPP-LEX packet you're looking at. The valid values are:

  • 0x40 - LEX_RCMD_REQUEST packet ๐Ÿงš
  • 0x41 - LEX_RCMD_ ACK packet ๐Ÿ’–
  • 0x42 - LEX_RCMD_NAK packet ๐Ÿ˜ญ
  • 0x43 - LEX_RCMD_REJ packet ๐Ÿ’€

The host router is the one that sends the LEX_RCMD_REQUEST packet. The LAN extension interface unit is the one that sends LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets. Main character energy, but make it a team effort ๐Ÿ‘‘

Identifier ๐ŸŒˆ

The Identifier field is one octet and holds a randomly generated value. That value helps match up requests with their replies, which is so useful ngl ๐Ÿ™ˆ It is recommended that a non-zero value be used for the identifier. The reason is that 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 it tells you the length in octets of the entire packet. That includes the Code, Identifier, Length, and remote command options fields. Simple, but iconic.

Option-Type ๐ŸŒธ

The Option-Type field is one octet, and it says which remote command option is being sent. The valid values are:

  • 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 ๐Ÿ’–

Every remote command option gets its own section later in this document, so hang tight bestie ๐ŸŽ€

Option-Flags ๐Ÿ’…

This field is one octet. It further specifies the remote command option, and it contains specific actions that must be followed. Not optional, babe.

Option-Length ๐Ÿ“

The Option-Length field is two octets, and it gives the length in octets of the remote command option fields. That covers the Option-Type, Option-Flags, Option-Length, and Option-Data fields all together ๐Ÿงฎ

Option-Data ๐Ÿฆ‹

The Option-Data field holds the data that goes with whatever remote command option is named in the Option-Type field. โœจ


2.3 Conditions for Sending PPP-LEX Packet ๐ŸŒธ

This section explains the general conditions for when each PPP-LEX packet type gets sent. For the specifics of each remote command, check the matching 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 start a remote command request. Until the host router gets a LEX_RCMD_ACK, LEX_RCMD_NAK, or LEX_RCMD_REJ packet back from the LAN extension interface unit, it keeps sending the LEX_RCMD_REQUEST packet a default number of times. After that, the host router times out. Respect the persistence ๐Ÿ˜ค๐Ÿซถ

LEX_RCMD_ACK Packet ๐ŸŽ€

The LAN extension interface unit answers a LEX_RCMD_REQUEST packet with a LEX_RCMD_ACK packet when it correctly receives the request and is able to carry it out. Yay, it worked ๐Ÿฅฐ

LEX RCMD_NAK Packet ๐Ÿ˜ญ

The LAN extension interface unit answers a LEX_RCMD_REQUEST packet with a LEX_RCMD_NAK packet when it recognizes all the elements of the remote command option, but some of those elements aren't acceptable. As soon as the host router gets a LEX_RCMD_NAK packet, it immediately stops sending the request. Rejected, but make it make sense ๐Ÿ’”

LEX RCMD_REJ Packet ๐Ÿ’€

The LAN extension interface unit answers a LEX_RCMD_REQUEST packet with a LEX_RCMD_REJ packet when the Option-Type value in the request is invalid. Invalid Option-Type values are anything less than 0x01 or greater than 0x0B. Right now this is the only condition where the LAN extension interface unit sends a LEX_RCMD_REJ packet. Once the host router gets a LEX_RCMD_REJ packet, it immediately stops sending the request. Bye felicia ๐Ÿ‘‹

The sections after this one each cover one of the 11 remote command options. Every section gives a general description of the option, then spells out its Option-Type, Option-Flags, Option-Length, and Option-Data fields. The sections also describe the return messages the LAN extension interface unit sends back. It's a whole lineup ๐Ÿ’…๐ŸŒˆ


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. That tells the unit to filter inbound packets by protocol type. A protocol type filter decides whether or not the LAN extension interface unit forwards packets of a specific protocol type to the host router. Each protocol type filter is made up of a 16-bit value, a 16-bit mask, and a permit or deny field. (Check the "Option-Data Field Descriptions" section for more on these filter fields ๐Ÿงš)

A LEX_RCMD_REQUEST packet can hold anywhere from 0 to 200 protocol type filters, depending on MTU size. When one packet has multiple filters, they get concatenated together ๐Ÿซถ

The LAN extension interface unit runs the protocol type filters against each inbound packet's protocol type field, in the order the filters appear in the filter table. A packet has to be permitted by one of the filters before the LAN extension interface unit can forward it across the serial link. Gatekeeping at its finest ๐Ÿ’…

Here's the 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 is 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. Picture it like a conveyor belt ๐Ÿ“

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 ๐Ÿ’–

okay so for the full tea on the fields in the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Options, go back to the "Remote Command Options" section earlier in this doc. This table is the quick cheat sheet for when you send a LEX_RCMD_REQUEST packet that tells 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 ๐ŸŽ€

three Option-Data fields work together as a team to specify a protocol type filter, and they're each giving something different:

  • Value ๐ŸŒธ The Value field holds a 16-bit value that can be any Ethernet type code. Check the "Assigned Numbers" RFC for the valid Ethernet type codes. (References, [4]).
  • Mask ๐Ÿฆ‹ The Mask field is a 16-bit "wild card" mask. So it's a 16-bit number where the ones bits line up with the type code bits that get ignored during the comparison. Basically the mask kicks certain bits out of the comparison in the protocol type filter. iconic ๐Ÿ’…
  • Permit/Deny ๐Ÿ’œ This one decides whether a protocol type filter lets inbound frames through to the host router or blocks them. A permit value is a non-zero value that lets frames of a specific protocol type pass to the host router. A deny value is a zero value that does not let frames of a specific protocol type pass to the host router. not me being so precise about zero vs non-zero ๐Ÿ™ˆ

Implementation Notes ๐Ÿ”ฅ

each LEX_RCMD_REQUEST packet is a complete specification of all protocol type filters, and it replaces any previously established filters. so it's a full reset every time, periodt โœจ

note the following special cases:

  • A LEX_RCMD_REQUEST packet with an Option-Length field equal to four (without any filter entries) tells the LAN extension interface unit to turn off protocol type filtering. All MAC protocol types get 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 the 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. the backup plan era ๐Ÿงš
  • 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. the ultimate block ๐Ÿ’€

3.2 Response Packets - Filter Protocol Type ๐Ÿ’…

these are the packets that count as 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 it correctly receives the Filter Protocol Type remote command option and applies all filter entries to its filter table. All filter entries get sent back 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 has an incorrect number of bytes in the filter, or when there are no more filter entries available. The LAN extension interface unit keeps using the previous filter table (that is, the filter table that existed before the request came in). The host router should signal an error to the user/network administrator. All filter entries get sent back to the host router in the LEX_RCMD_NAK packet. rough day, but the router handles it ๐ŸŒˆ
  • LEX_RCMD-REJ - Filter Protocol Type ๐Ÿฆ‹ Check the "Conditions for Sending PPP-LEX Packets" section earlier in this document for more info on this packet type.

Table 3 sums up the field values for 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

4.0 Filter MAC Address ๐ŸŒธ

the host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x02 to the LAN extension interface unit to set up filtering by source MAC address. A MAC address filter decides whether or not the LAN extension interface unit forwards packets with a specific source MAC address to the host router. A MAC address filter is made up of a MAC address, a MAC address mask, and a permit or deny field. (See the "Option-Data Field Descriptions" section later in this section for more info on these filter fields.) ๐Ÿฆ‹

A LEX_RCMD_REQUEST packet can contain 0 to 100 (depending on MTU size) MAC address filters. When a LEX_RCMD_REQUEST packet contains multiple filters, they get concatenated. ๐Ÿงš

The LAN extension interface unit applies MAC address filters to each inbound packet's source MAC address, in the order the filters appear in the filter entry list. A packet must be permitted by one of the filters before the LAN extension interface unit can forward it across the serial link. no pass, no forward ๐Ÿ”ฅ

4.1 LEX RCMD_REQUEST - Filter MAC Address ๐Ÿ’œ

Figure 7 gives you a frame format summary of a LEX_RCMD_REQUEST packet for the Filter MAC Address remote command option. The host router transmits the fields from left to right. โœจ

Figure 7 LEX_RCMD_REQUEST Packet Frame Format - Filter MAC Address

                        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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      MAC Address (48 bits)....
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      MAC Address Mask (48 bits)....
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Permit/Deny (16 bits)    |

4.2 Response Packets - Filter MAC Address โœจ

Okay so, here's the full Table 4 breakdown for a LEX_RCMD_REQUEST that sets up the LAN extension interface unit to filter by source MAC address ๐ŸŽ€

Table 4 Field Values for LEX_RCMD_REQUEST Packet - Filter MAC Address

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 = 1412 octets
Option-Type          0x02 (Filter MAC Address)
Option-Flags         None
Option-Length        Minimum length = 4 octets

                     Maximum length = 1404 octets
Option-Data          Zero or more filters to be applied at the
                     LAN extension interface unit. See the
                     following "Option-Data Field Description
                     section for details.

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, just look back at the "Remote Command Options" section earlier in this doc. Table 4 is the quick summary ๐Ÿ’–

Option-Data Field Descriptions ๐Ÿงš

Three Option-Data fields work together to make a MAC address filter ๐Ÿ“

  • MAC Address

The MAC Address field holds a 48-bit IEEE 802.3 MAC address in canonical format ๐ŸŒธ

  • MAC Address Mask

The MAC Address Mask field is a "wild card" mask. It's a 48-bit hexadecimal number where the ones bits mark the MAC address bits to be ignored during the comparison. So the mask basically excludes those bits from the comparison in the MAC address filter. Iconic behaviour ๐Ÿ’…

  • Permit/Deny

The Permit/Deny field decides whether a MAC address filter lets inbound frames of a specific MAC address through to the host router, or blocks them. A permit value is a non-zero value that lets frames of a specific MAC address pass to the host router. A deny value is a zero value that does not let those frames pass to the host router ๐Ÿ”ฅ

Implementation Notes ๐Ÿฆ‹

Every LEX_RCMD_REQUEST packet is a complete specification of all MAC address filters, and it replaces any filters that were set up before. Fresh start every time ๐Ÿ‘‘

A LEX_RCMD_REQUEST packet with an Option-Length field equal to four (and no filter entries) tells the LAN extension interface unit to turn filtering off. Then all MAC addresses get forwarded, except local destination addresses cached in the self-learning filter ๐Ÿ™ˆ

4.2 Response Packets - Filter MAC Address โœจ

These packets are valid responses to the Filter MAC Address LEX_RCMD_REQUEST packet:

  • LEX_RCMD_ACK - Filter MAC Address

The LAN extension interface unit sends a LEX_RCMD_ACK packet in response to a Filter MAC Address LEX_RCMD_REQUEST packet when it correctly receives the Filter MAC Address remote command option and applies the entries to its filter table. All MAC address filter entries come back in the LEX_RCMD_ACK packet. Major success ๐ŸŽ‰

  • LEX_RCMD_NAK - Filter MAC Address

The LAN extension interface unit sends a LEX_RCMD_NAK packet in response to the Filter MAC Address LEX_RCMD_REQUEST packet when the request has an incorrect number of bytes in the filter, or when there are no more filter entries available. The LAN extension interface unit keeps using the previous filter table (the one that existed before the request arrived). The host router should signal an error to the user/network administrator. All filter entries come back in the LEX_RCMD_NAK packet. Not it ๐Ÿ’€

  • LEX_RCMD-REJ - Filter MAC Address

See the "Conditions for Sending PPP-LEX Packets" section earlier in this document for more information on this packet type.

Table 5 sums up the field values for the Filter MAC Address LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets ๐Ÿ“‹

Table 5 Field Values for Response Packets - Filter MAC Address

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          0x02 (Filter MAC Address)
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

5.0 Set Priority ๐Ÿ’–

The host router sends a LEX_RCMD_ REQUEST with an Option-Type of 0x03 to the LAN extension interface unit. That sets the sending priority for different protocol type packets going from the LAN extension interface unit to the host router. There are four levels of priority:

  • High
  • Medium
  • Normal
  • Low

Packets get classified by protocol type, then queued into one of four output queues on the LAN extension interface unit. Those queues line up with the priority levels above. When the LAN extension interface unit is ready to transmit a packet, it scans the priority queues in order, from highest to lowest, to find the highest priority packet. Queue VIP energy ๐Ÿ‘‘

5.1 LEX RCMD_REQUEST - Set Priority ๐ŸŽ€

To set up priority queues for each protocol type, the host router sends a Set Priority LEX_RCMD_REQUEST packet. Figure 8 is a frame format summary of that packet. The host router transmits the fields from left to right โœจ

Figure 8 LEX_RCMD_REQUEST Packet Frame Format - Set Priority

                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Protocol Type (16 bits)   |    Protocol Value (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, go back to the "Remote Command Options" section earlier in this document. The table below is the summary of these fields when you send a LEX_RCMD_REQUEST packet that sets priority queuing ๐Ÿซถ

Table 6 Field Values for LEX_RCMD_REQUEST Packet - Set Priority

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 = 1028 octets
Option-Type          0x03 (Set Priority)
Option-Flags         None
Option-Length        Minimum length = 4 octets
                     Maximum length = 1020 octets
Option-Data          Protocol Type and Priority Value. See the
                     following "Option-Data Field Description"
                     section for details.

Option-Data Field Descriptions ๐ŸŒˆ

The following Option-Data fields set the priority queuing of different protocol type packets ๐Ÿ’œ

  • Protocol Type

The Protocol Type field is a 16-bit number that can be any Ethernet type code. For the correct Ethernet type code, check the most recent "Assigned Numbers" RFC ๐Ÿ”Ž

  • Priority Value

The Priority Value field picks the priority queue for the protocol type named in the Protocol Type field. Valid values are:

  • 0 - High priority queue
  • 1 - Medium priority queue
  • 2 - Normal priority queue
  • 3 - Low priority queue

Sending a LEX_RCMD_REQUEST packet with an Option-Length of four (no priority entries) turns off priority queuing. When it's off, the LAN extension interface unit transfers all packets at a normal (2) priority level. If you specify a new priority, it overwrites the previous setting. Clean slate, bestie ๐Ÿงšโœจ

5.2. Response Packets - Set Priority โœจ

Okay so bestie, the only packets that count as valid replies to a Set Priority LEX_RCMD_REQUEST are these three ๐Ÿ’…

  • LEX_RCMD_ACK - Set Priority

Check the "Conditions for Sending PPP-LEX Packets" section earlier in the doc if you want the full scoop on when this one gets sent ๐Ÿฆ‹

  • LEX_RCMD_NAK - Set Priority

The LAN extension interface unit sends a LEX_RCMD_NAK ๐Ÿ™ˆ in reply to the Set Priority request when the message has the wrong number of bytes, when the resources it needs aren't available, or when the priority you asked for is invalid. Not a vibe.

  • LEX_RCMD-REJ - Set Priority

Same deal as the ACK: see the "Conditions for Sending PPP-LEX Packets" section earlier in this document for the details ๐ŸŒธ Table 7 sums up the field values for the Set Priority LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets.

Table 7 Field Values for Response Packets - Set Priority ๐ŸŽ€

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           A randomly generated value that aids in
                     matching requests with replies
Length               Minimum length = 12 octets
                     Maximum length = 1028 octets
Option-Type          0x03 (Set Priority)
Option-Flags         None
Option-Length        Minimum length = 4 octets
                     Maximum length = 1020 octets
Option-Data          Protocol Type and Priority Value sent
                     in the LEX_RCMD_REQUEST packet

6.0. Disable LAN Extension Ethernet Interface ๐ŸŒˆ

Okay this one is giving shutdown energy ๐Ÿ˜ญ The host router sends a LEX_RCMD_ REQUEST with an Option-Type of 0x04 to the LAN extension interface unit to disable the LAN extension Ethernet interface. It stops data traffic going from the LAN extension interface unit to the host router, which is useful for troubleshooting or for reconfiguring the unit. Heads up: this remote command option only affects data traffic. PPP-LEX control packets can still go over the serial link, so the conversation doesn't totally stop ๐Ÿ’œ

6.1. LEX RCMD_REQUEST - Disable LAN Extension Ethernet Interface ๐Ÿ’–

Figure 9 is a quick frame format summary of a LEX_RCMD_REQUEST packet for the Disable LAN Extension Ethernet Interface remote command option. The host router sends the fields from left to right โœจ

Figure 9 LEX_RCMD_REQUEST Packet Frame Format - Disable LAN Extension Ethernet Interface ๐Ÿฆ‹

                           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 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option-Type  |  Option-Flags |        Option-Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (1)            (1)                    (2)

Summary Field Descriptions ๐Ÿงš

For the full rundown on the fields in the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, go back to the "Remote Command Options" section earlier in this document. The table below gives you the quick version for a LEX_RCMD_REQUEST packet that disables the LAN extension interface unit ๐Ÿ“

Table 8 Field Values for LEX_RCMD_REQUEST Packet - Disable LAN Extension Ethernet Interface ๐Ÿ‘‘

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               12 octets
Option-Type          0x04 (Disable LAN Extension Ethernet
                     Interface)
Option-Flags         None
Option-Length        4 octets
Option-Data          None

6.2. Response Packets - Disable LAN Extension Ethernet Interface โญ

LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD-REJ packets are all valid replies to the Disable LAN Extension Ethernet Interface LEX_RCMD_REQUEST packet. Check the "Conditions for Sending PPP-LEX Packets" section earlier in this document for when the LAN extension interface unit sends each one. Also, note this detail: the LAN extension interface unit sends the LEX_RCMD_ACK packet after shutting down the interface ๐Ÿ™ˆ

Table 9 sums up the field values for the Disable LAN Extension Ethernet Interface LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets ๐Ÿ’…

Table 9 Field Values for Response Packets - Disable LAN Extension Ethernet Interface ๐ŸŒธ

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               12 octets
Option-Type          0x04 (Disable LAN Extension Ethernet
                     Interface)
Option-Flags         None
Option-Length        4 octets
Option-Data          None

7.0. Enable LAN Extension Ethernet Interface ๐Ÿ”ฅ

Now the glow-up ๐ŸŒˆ The host router sends a LEX_RCMD_ REQUEST with an Option-Type of 0x05 to the LAN extension interface unit to enable the LAN extension Ethernet interface. This remote command option lets LAN traffic flow into the LAN extension interface unit again, after the interface has been disabled ๐Ÿซถ

7.1. LEX RCMD_REQUEST - Enable LAN Extension Ethernet Interface ๐ŸŽ€

Figure 10 is a frame format summary of a LEX_RCMD_REQUEST packet for an Enable LAN Extension Ethernet Interface remote command option. The host router sends the fields from left to right ๐Ÿงš

Figure 10 LEX_RCMD_REQUEST Packet Frame Format - Enable LAN Extension Ethernet Interface ๐Ÿ’œ

                           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 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option-Type  |  Option-Flags |        Option-Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (1)            (1)                    (2)

Summary Field Descriptions ๐Ÿฆ‹

For the full descriptions of the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option fields, check the "Remote Command Options" section earlier in this document. Table 10 gives you the summary for a LEX_RCMD_REQUEST packet that enables the LAN extension Ethernet interface ๐ŸŒธ

Table 10 Field Values for LEX_RCMD_REQUEST Packet - Enable LAN Extension Ethernet Interface โœจ

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               12octets
Option-Type          0x05 (Enable LAN Extension Ethernet
                     Interface)
Option-Flags         None
Option-Length        4 octets
Option-Data          None

7.2. Response Packets - Enable LAN Extension Ethernet Interface ๐ŸŒˆ

LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD-REJ packets are all valid replies to the Enable LAN Extension Ethernet Interface LEX_RCMD_REQUEST packet. For when the LAN extension interface unit sends each of these, look at the "Conditions for Sending PPP-LEX Packets" section earlier in this document. Note that the LAN extension interface unit sends the LEX_RCMD_ACK packet after enabling the interface ๐Ÿ’–

The frame format of the response packets mirrors the request ๐Ÿชž Table 11 sums up the field values for the Enable LAN Extension Ethernet Interface LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets ๐Ÿซถ

Table 11 Field Values for Response Packets - Enable LAN Extension Ethernet Interface ๐Ÿ“

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               12 octets
Option-Type          0x05 (Enable LAN Extension Ethernet
                     Interface)

Option-Flags         None
Option-Length        4 octets
Option-Data          None

8.0 Reboot LAN Extension Interface Unit ๐Ÿ”„โœจ

okay bestie, so the host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x06 to the LAN extension interface unit to make it reboot itself ๐Ÿ”ฅ The Option-Flags field is where you pick the boot mode, and there are two of them ๐Ÿ’…

  • Boot mode 0x00 is the default, and it's giving careful. The unit checks for a valid Flash image and boots from it if one exists ๐Ÿซถ If there's no valid Flash image, it boots from the PROM image instead. And if the Flash image is bad, it recovers by booting from PROM. Iconic recovery arc ๐Ÿฆ‹
  • Boot mode 0x01 is the no-debate option. It forces the unit to boot from the PROM image ๐Ÿ™…โ€โ™€๏ธ

8.1 LEX RCMD_REQUEST - Reboot LAN Extension Interface Unit ๐ŸŽ€

Okay so Figure 11 gives you the frame format summary for a LEX_RCMD_REQUEST packet using the Reboot LAN Extension Interface Unit remote command option ๐Ÿ“ฆ The host router sends the fields left to right.

             Figure 11 LEX_RCMD_REQUEST Packet Frame Format -
                    Reboot LAN Extension Interface Unit

                            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 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option-Type  |  Option-Flags |        Option-Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (1)            (1)                    (2)

Summary Field Descriptions ๐Ÿ“

For the full scoop on the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, check the "Remote Command Options" section earlier in this document ๐Ÿ“– Table 12 is the quick-glance version of those fields for a LEX_RCMD_REQUEST packet that tells the unit to reboot.

           Table 12  Field Values for LEX_RCMD_REQUEST Packet -
                    Reboot LAN Extension Interface Unit

   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               12 octets
   Option-Type          0x06 (Reboot LAN Extension Interface Unit)
   Option-Flags         Valid values:
                        * 0x00 - Reboot from Flash image if it
                          exists. If not, reboot from PROM. (This
                          value does not force the LAN extension
                          interface unit to reboot from PROM.)
                        * 0x01 - Reboot from PROM explicitly.
   Option-Length        4 octets
   Option-Data          None

8.2 Response Packets - Reboot LAN Extension Interface Unit ๐Ÿ’Œ

LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD-REJ packets are all valid replies to the Reboot LAN Extension Interface Unit LEX_RCMD_REQUEST packet ๐Ÿ’• For when the unit actually sends each of those, look back at the "Conditions for Sending PPP-LEX Packets" section earlier in this document. Also, the unit reboots after it sends the LEX_RCMD_ACK packet, so it's basically saying "bye, see you on the other side" ๐Ÿ‘‹

The response frames mirror the request frames, and Table 13 sums up the field values for LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets for this reboot command ๐Ÿงš

              Table 13  Field Values for Response Packets -
                    Reboot LAN Extension Interface Unit

   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 in the
                        LEX_RCMD_REQUEST packet
   Length               12 octets
   Option-Type          0x06 (Reboot LAN Extension Interface Unit)
   Option-Flags         Valid values:
                        * 0x00 - Reboot from Flash image if it
                          exists. If not, reboot from PROM. (This
                          value does not force the LAN extension
                          interface unit to reboot from PROM.)
                        * 0x01 - Reboot from PROM explicitly.
   Option-Length        4 octets
   Option-Data          None

9.0 Request Statistics ๐Ÿ“Šโœจ

The host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x07 to grab statistics info from the LAN extension interface unit ๐Ÿ‘€ It's totally up to the host what it wants to peek at:

  • Serial interface only ๐Ÿ”Œ
  • LAN interface only ๐ŸŒ
  • Both the serial and LAN interfaces ๐Ÿ‘ฏโ€โ™€๏ธ

The host router can also send a Statistics Request LEX_RCMD_REQUEST packet to reset the statistics in the LAN extension interface unit, which is a glow-up reset ๐Ÿงน๐Ÿ’–

9.1 LEX RCMD_REQUEST - Request Statistics ๐ŸŽ€

Figure 12 is the summary frame format for a LEX_RCMD_REQUEST packet using the Request Statistics remote command option. The host router sends the fields left to right.

    Figure 12 LEX_RCMD_REQUEST Packet Frame Format - Request Statistics

                            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 Option
<-------------------------------------------------------------->
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 0 1 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option-Type  |  Option-Flags |        Option-Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (1)            (1)                    (2)

Summary Field Descriptions ๐Ÿ“

For the full details on the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, look at the "Remote Command Options" section earlier in this document ๐Ÿ“– Table 14 is the cheat sheet for a LEX_RCMD_REQUEST packet asking for the LAN extension interface unit's statistics.

           Table 14  Field Values for LEX_RCMD_REQUEST Packet -
                            Request Statistics

   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               12 octets
   Option-Type          0x07 (Request Statistics)
   Option-Flags         Valid values:
                        * 0x01 - Resets serial statistics in the LAN

                          extension interface unit
                        * 0x02 - Returns serial statistics from the
                          LAN extension interface unit
                        * 0x04 - Returns LAN statistics from the LAN
                          extension interface unit
                        * 0x08 - Resets LAN statistics in the LAN
                        * extension interface unit
                        If both serial and LAN statistics are
                        desired, the corresponding bits of this
                        field should be set (that is, 0x06). The
                        serial interface statistics appear in the
                        response packet before the LAN statistics.
   Option-Length        4 octets
   Option-Data          None

9.2 LEX RCMD_ACK - Request Statistics ๐Ÿ“ˆ

The normal reply to a Statistics Request LEX_RCMD_REQUEST packet is a LEX_RCMD_ACK packet ๐Ÿฅฐ This ack has an Option-Type, an Option-Flags, and an Option-Length field, followed by one or two blocks of statistics data. The Option-Flags value tells you whether there's one block or two ๐Ÿ” Check the "Summary Field Descriptions" section that comes next for what each value means.

The LAN extension interface unit sends the fields left to right, and Figure 13 shows the frame format for this Statistics Request LEX_RCMD_ACK packet โœจ

      Figure 13 LEX_RCMD_ACK Packet Frame Format - Request Statistics

                            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 |

Okay bestie, so this is where the Option-Data field gets its actual stats. ๐Ÿ“Š Its Option-Data can carry one or both of these two blocks, and I'm not gonna pretend the diagram above doesn't look a little like a spreadsheet had a lot of feelings ๐Ÿ’€

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (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)

Serial Interface Statistics Block ๐Ÿ”Œโœจ This one is giving serial line realness. Every row is 32 bits, so it's all packed in nice and tidy.

                       (32 bits)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Packets Received                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of CRC Erros                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Framing Errors                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Overruns                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Packets Dropped                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Frame Aborts                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Packets in Error                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Packets Dropped Due to Lack of   |
| Buffer Descriptors                                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Time of Last Packet Received               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Average Data Rate                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Average Packet Rate                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Octets Received                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Input, Number of Packets Dropped Due to No Buffers|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets Transmitted             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets with Error Transmissions|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Under-run Errors                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets in Low Priority Queue   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Size of Low Priority Queue                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets Dropped in Low Priority |
| Queue                                                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets in Normal Priority Queue|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Size of Normal Priority Queue             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets Dropped in Normal       |
| Priority Queue                                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets in Medium Priority Queue|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Size of Medium Priority Queue             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets Dropped in              |
| Medium Priority Queue                                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets in High Priority Queue  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Size of High Priority Queue               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Packets Dropped in High         |
| Priority Queue                                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Time of Last Packet Transmitted           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Carrier Transitions             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Transmitted Data Rate                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Serial Line Output, Number of Octets Transmitted              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Lan Interface Statistics Block ๐ŸŒˆ Same deal here, but for LAN stuff. Still 32 bits per row, still very organized, still slay ๐Ÿ’…

                        (32 bits)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Received                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Received with CRC Errors         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Received with Framing Errors     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Overruns                                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Dropped Due to Congestion        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Frame Aborts                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Broadcast Packets Received               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Received with Errors             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Dropped Due to Lack of Buffer    |
| Descriptors                                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Runts (Too Small Packets) Received       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Time of Last Packet Received                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Average Data Rate                                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Average Packet Rate                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Octets Received                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Input, Number of Packets Dropped Due to Lack of Buffers   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Packets Transmitted                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Packets Transmitted with Errors         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Under-runs                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Collisions (Ethernet)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Packets in Queue                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Queue Size                                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Packets Dropped in Queue                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Time of Last Packet Transmitted                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Transmit Data Rate                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Transmit Packet Rate                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN Output, Number of Octets Transmitted                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LAN, Number of Interface Resets                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Okay bestie, so the stats notes are up next ๐Ÿ“Š Counts are cumulative since the last counter reset, timestamps are in milliseconds since the last given event, and packet rates are in packets per second (averaged). ๐Ÿ’–

Summary Field Descriptions โœจ

For the full scoop on the PPP Header, the LAN Extension Protocol Header, and the LAN Extension Remote Command Option, go back to the "Remote Command Options" section earlier in the doc ๐ŸŽ€ This table is the quick version for a LEX_RCMD_ACK packet that sends statistics back to the host router ๐Ÿฆ‹

Table 15 Field Values for LEX_RCMD_ACK Packet - Request Statistics

   Field                Value
   Address/Control      0xFF03 (Broadcast address/Unnumbered
                        information)
   Protocol-Type        0x8041 (Control packet)
   Code                 0x41 (LEX_RCMD_ACK packet)
   Identifier           The same value as that sent by the
                        LEX_RCMD_REQUEST packet
   Length               Minimum length = 120 octets
                        Maximum length = 140 octets
   Option-Type          0x07 (Request Statistics)
   Option-Flags         The LAN extension interface unit always sets
                        this field to reflect the actions taken in
                        response to the LEX_RCMD_ACK packet. Valid
                        values:
                        * 0x01 - Reset serial statistics in the LAN
                          extension interface unit
                        * 0x02 - Return serial statistics from the
                          LAN extension interface unit
                        * 0x04 - Return LAN statistics from the LAN

                          extension interface unit
                        * 0x08 - Reset LAN statistics in the LAN
                          extension interface unit
                          If both serial and LAN statistics are
                          returned, the corresponding bits of this
                          field should are set (that is, 0x06). The
                          serial interface statistics appear in the
                          response packet before the LAN statistics.
   Option-Length        Minimum length = 116 octets
                        Maximum length = 136 octets
   Option-Data          The Serial Interface Statistics Block, the
                        LAN Interface Statistics Block, or both the
                        Serial Interface and LAN Interface
                        Statistics blocks. When the Option-Data
                        contains both blocks, the Serial Interface
                        Block precedes the LAN Interface Block.
                        Statistics values that the LAN extension
                        interface unit does not collect/support
                        are retuned with a value of zero.

Implementation Notes ๐Ÿง 

If the LAN extension interface unit doesn't implement the ability to send the serial and LAN interface statistics blocks separately, the implementation may always return both statistics blocks (with the Option-Flags and Option-Length fields containing the appropriate corresponding values). ๐Ÿ’…

An implementation, such as a Token Ring LAN implementation, can collect a different set of statistics than shown above by defining a new statistics request type remote command option. ๐ŸŒˆ


9.3 LEX RCMD_NAK/LEX RCMD_REJ - Request Statistics ๐Ÿ™ˆ

The LAN extension interface unit sends a LEX_RCMD_NAK packet when the Statistics Request LEX_RCMD_REQUEST packet didn't specify which type of statistics the host router wants. In other words, the request's Option-Flags field equals zero. ๐Ÿ’€

For when the LAN extension interface unit sends a Request Statistics LEX_RCMD_REJ packet, check the "Conditions for Sending PPP-LEX Packets" section earlier in the doc ๐Ÿ”ฅ

The frame format for the LEX_RCMD_NAK and LEX_RCMD_REJ packets is the same as the Statistics Request LEX_RCMD_REQUEST packet. Table 16 sums up the field values for the Statistics Request LEX_RCMD_NAK and LEX_RCMD_REJ packets ๐Ÿ“

Table 16 Field Values for LEX_RCMD_NAK/LEX_RCMD_REJ Packets - Request Statistics

   Field                Value
   Address/Control      0xFF03 (Broadcast address/Unnumbered
                        information)
   Protocol-Type        0x8041 (Control packet)
   Code                 Valid values:
                        * 0x42 (LEX_RCMD_NAK packet)
                        * 0x43 (LEX_RCMD_REJ packet)
   Identifier           The same value as that sent by the
                        LEX_RCMD_REQUEST packet
   Length               12 octets
   Option-Type          0x07 (Request Statistics)
   Option-Flags         The same value as that sent by the
                        LEX_RCMD_REQUEST packet
   Option-Length        4 octets
   Option-Data          None

10.0 Download Request ๐Ÿ’พ

The host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x08 to alert the LAN extension interface unit that it's about to issue a software download to Flash memory ๐Ÿงš Once the LAN extension interface unit acknowledges the command, the host router starts sending the download data. โœจ

10.1 LEX RCMD_REQUEST - Download Request ๐ŸŽ€

Figure 14 is a summary frame format of a LEX_RCMD_REQUEST packet for a Download Request remote command option. The host router transmits the fields from left to right. ๐Ÿฆ‹

Figure 14 LEX_RCMD_REQUEST Packet Frame Format - Download 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              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 Option
<--------------------------------
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Block Number (16 bits)    |        File Size (32 bits)....
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Filename (Max. 64 octets).......
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

For a full description of the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, check the "Remote Command Options" section earlier in the doc ๐Ÿ“– Table 17 gives you the summary when the host router sends a LEX_RCMD_REQUEST packet to tell the LAN extension interface unit about an upcoming software download to Flash memory ๐Ÿ’–

Table 17 Field Values for LEX_RCMD_REQUEST Packet - Download Request

   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               Variable depending on size of filename in
                        the Filename field. Valid range:
                        Minimum length = 19 octets
                        Maximum length = 82 octets
   Option-Type          0x08 (Download Request)
   Option-Flags         None
   Option-Length        Variable depending on size of filename in
                        the Filename field. Valid range:
                        Minimum length = 11 octets
                        Maximum length = 74 octets
   Option-Data          Block Number, File Size, and Filename of
                        the code/image to be downloaded. See the
                        following "Option-Data Field Descriptions"
                        section for details.

Option-Data Field Descriptions ๐Ÿซถ

The Option-Data field contains the following fields:

  • Block Number

The Block Number field holds a value that identifies a contiguous group of code bits to be downloaded to the LAN extension interface unit. In the LEX_RCMD_REQUEST packet, the Block Number is always zero. ๐Ÿ”ข

  • File Size

The File Size field holds the size (in octets) of the code to be downloaded to the LAN extension interface unit. ๐Ÿ“

  • Filename

The Filename field holds the name of the image to be transferred to the LAN extension interface unit. ๐Ÿ“‚

10.2 Response Packets - Download Request ๐ŸŒธ

These packets are valid responses to a Download Request LEX_RCMD_REQUEST packet:

  • LEX_RCMD_ACK - Download Request

Check the "Conditions for Sending PPP-LEX Packets" section earlier in the doc for more on when the LAN extension interface unit sends this packet. ๐Ÿ‘‘

  • LEX_RCMD_NAK - Download Request

The LAN extension interface unit sends a Download Request LEX_RCMD_NAK packet when it's currently programming Flash, when the File Size field value in the request is greater than the unit's available Flash bytes, when the LAN extension interface unit is out of memory, or when the Block Number field value in the request isn't zero. ๐Ÿ˜ญ

  • LEX_RCMD_REJ - Download Request

Refer to the "Conditions for Sending PPP-LEX Packets" section earlier in the doc for more info on when the LAN extension interface unit sends this packet. ๐Ÿงš

Table 18 sums up the field values for the Download Request LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets ๐Ÿ“

Table 18 Field Values for Response Packets - Download Request

   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          0x08 (Download Request)
   Option-Flags         None
   Option-Length        The same value as that sent by the
                        LEX_RCMD_REQUEST packet
   Option-Data          Block Number, File Size, and Filename of
                        the code/image to be downloaded.

11.0 Download Data โœจ

okay so once the host router gets a Download Request LEX_RCMD_ACK packet back from the LAN extension interface unit, it starts sending the data that gets written into Flash memory. It does this by sending LEX_RCMD_REQUEST packets with an Option-Type of 0x09. It sends multiple Download Data LEX_RCMD_REQUEST packets, and each one carries 512 octets of Option-Data with the binary data to be programmed into Flash memory ๐Ÿ’พ๐Ÿซถ

A packet with Option-Data of less than 512 octets is the signal that the download data is over (aka the end of tile). Now here's the tricky part ๐Ÿ‘€ If the file being downloaded is an even multiple of 512 bytes, the last packet should have an Option-Length of 6. So it has Option-Data with the Block Number field value but no data. A Block Number with no data is how the LAN extension interface unit knows this is the last block ๐Ÿโœจ

11.1 LEX RCMD_REQUEST - Download Data

The Download Data LEX_RCMD_REQUEST packet is kinda giving TFTP frame vibes ๐ŸŽ€ Figure 15 shows the summary, and the host router sends the fields from left to right.

Figure 15 LEX_RCMD_REQUEST Packet Frame Format - Download Data

                           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 Option
<--------------------------------
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Block Number (16 bits)    |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|       Binary Download Data (Max. 512 octets).....             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Summary Field Descriptions ๐Ÿ“

For a complete descriptions of the fields in the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, check the "Remote Command Options" section earlier in this document. Table 19 is the cheat sheet for sending a LEX_RCMD_REQUEST packet that downloads software to the LAN extension interface unit ๐Ÿงš

Table 19 Field Values for LEX_RCMD_REQUEST Packet - Download Data

   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 = 14 octets
                        Maximum length = 526 octets
   Option-Type          0x09 (Download Data)
   Option-Flags         None
   Option-Length        Minimum length = 6 octets (signals end of
                        data transfer for a file with a file size
                        of an even multiple of 512 bytes)
                        Maximum length = 518 octets
   Option-Data          Block Number and Download Data. See the
                        following "Option-Data Field Descriptions"
                        section for details.

Option-Data Field Descriptions ๐Ÿ’…

The following Option-Data fields give the LAN extension interface unit its download data:

Block Number ๐Ÿ”ข

The Block Number identifies the contiguous group of code bits being downloaded. The host router generates this number automatically. The first Download Data packet gets a block number of one, and the host router bumps the Block Number by one with every Download Data LEX_RCMD_REQUEST packet it sends to the LAN extension interface unit. The maximum value of the Block Number depends on the unit's Flash memory size.

Download Data ๐Ÿ’–

The Download Data is the actual code bits getting downloaded to the LAN extension interface unit. A maximum of 512 octets of download data can be sent in one Download Data LEX_RCMD_REQUEST packet.

11.2 Response Packets - Download Data

These packets are valid responses to a Download Data LEX_RCMD_REQUEST packet:

  • LEX_RCMD_ACK - Download Data

Check the "Conditions for Sending PPP-LEX Packets" section earlier in the document for more on this one ๐ŸŒธ

  • LEX_RCMD_NAK - Download Data

The LAN extension interface unit sends a Download Data LEX_RCMD_NAK packet when it's not in the proper state, or when accepting the data would over-run the download buffer. Oof ๐Ÿ’€

  • LEX_RCMD_REJ - Download Data

Same deal here, see the "Conditions for Sending PPP-LEX Packets" section earlier in the document for more info on this packet ๐Ÿฆ‹

Table 20 summarizes the field values of the Download Data LEX_RCMD_ACK, LEX_RCMD_NAK, and LEX_RCMD_REJ packets ๐Ÿ“Š

Table 20 Field Values for Response Packets - Download Data

   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               14 octets
   Option-Type          0x09 (Download Data)
   Option-Flags         None
   Option-Length        6 octets
   Option-Data          Block Number only

12.0 Download Status ๐ŸŽ€

Once a Download Data sequence is done, the host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x0A to ask whether the download worked or not. Lowkey a bad checksum of the image, or a malfunctioning Flash memory, could make the download fail ๐Ÿ˜ญ

12.1 LEX RCMD_REQUEST - Download Status

Figure 16 shows the frame format summary of a LEX_RCMD_REQUEST packet for a Download Status remote command option. The host router sends the fields from left to right โœจ

Figure 16 LEX_RCMD_REQUEST Packet Frame Format - Download Status

                           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 Option
<-------------------------------------------------------------->
 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-Flags |        Option-Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (1)            (1)                    (2)

Summary Field Descriptions ๐Ÿ“

For a complete descriptions of the fields in the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, check the "Remote Command Options" section earlier in this document. Table 21 summarizes these fields when sending a LEX_RCMD_REQUEST packet that asks for the download status of the LAN extension interface unit ๐Ÿ“

Table 21 Field Values for LEX_RCMD_REQUEST Packet - Download Status

   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               12 octets
   Option-Type          0x0A (Download Status)
   Option-Flags         None
   Option-Length        4 octets
   Option-Data          None

12.2 LEX RCMD_REQUEST - Download Status

When the LAN extension interface unit correctly receives the Download Status LEX_RCMD_REQUEST packet, it sends back a LEX_RCMD_ACK packet with the status info in the Option-Data field ๐ŸŽ‰

Figure 17 shows the frame format for the Download Status LEX_RCMD_ACK packet. The LAN extension interface unit sends the fields from left to right.

Figure 17 LEX_RCMD_ACK Packet Frame Format - Download Status

                            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 Option
<--------------------------------
 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

okay so the Status field is a 16-bit thing, and it's giving clean layout ๐ŸŽ€

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Status (16 bits)       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Summary Field Descriptions โœจ

bestie, for the full tea on the PPP Header, the LAN Extension Interface Protocol Header, and the LAN Extension Interface Remote Command Option, go back to the "Remote Command Options" section earlier in this doc ๐Ÿ“š Table 22 is the quick cheat sheet for when the unit sends status info back to the host router ๐Ÿ’…

Table 22 Field Values for LEX_RCMD_ACK Packet - Download Status

Field                Value
Address/Control      0xFF03 (Broadcast address/Unnumbered
                     information)
Protocol-Type        0x8041 (Control packet)
Code                 0x41 (LEX_RCMD_ACK packet)
Identifier           The same value as that sent by the
                     LEX_RCMD_REQUEST packet
Length               14 octets
Option-Type          0x0A (Download Status)
Option-Flags         None
Option-Length        6 octets
Option-Data          Status information. See the following
                     "Option-Data Field Descriptions" section
                     for details.

Option-Data Field Descriptions ๐Ÿซถ

okay so the Option-Data field is where the Status field carries the download status back to the host router ๐Ÿ’– The Status field reports these:

  • 1 - Acknowledgment that no errors occurred โœ…
  • 3 - Sequence error occurred ๐Ÿ˜ญ
  • 6 - Flash write error occurred ๐Ÿ’€
  • 7 - Checksum error ๐Ÿ™ˆ

12.3 LEX RCMD_NAK/LEX RCMD_REJ - Download Status ๐Ÿ’œ

ngl this one is basically the mirror image of the request ๐Ÿชž Refer to the "Conditions for Sending PPP-LEX Packets" section earlier in this document to find out when the LAN extension interface unit sends a Download Status LEX_RCMD_NAK packet or a Download Status LEX_RCMD_REJ packet ๐Ÿ”ฅ

The frame format for these two response packets mirrors the frame format of the Download Status LEX_RCMD_REQUEST packet. Table 23 summarizes the field values for the Download Status LEX_RCMD_NAK and LEX_RCMD_REJ packets ๐ŸŒˆ

Table 23 Field Values for LEX_RCMD_NAK/LEX_RCMD_REJ Packets - Download Status

Field                Value
Address/Control      0xFF03 (Broadcast address/Unnumbered
                     information)
Protocol-Type        0x8041 (Control packet)
Code                 Valid values:
                     * 0x42 (LEX_RCMD_NAK packet)
                     * 0x43 (LEX_RCMD_REJ packet)
Identifier           The same value as that sent by the
                     LEX_RCMD_REQUEST packet
Length               12 octets
Option-Type          0x0A (Download Status)
Option-Flags         None
Option-Length        4 octets
Option-Data          None

13.0 Inventory Request ๐Ÿงš

okay so the host router sends a LEX_RCMD_REQUEST packet with an Option-Type of 0x0B to the LAN extension interface unit to ask for inventory info ๐Ÿฆ‹ The host router may use this remote command option to:

  • Tell apart different versions of the LAN extension interface unit so it knows what they can do ๐Ÿ”
  • Figure out whether a new version of Flash code should be downloaded ๐Ÿ’พ

13.1 LEX RCMD_REQUEST - Inventory Request ๐Ÿฆ‹

Figure 18 shows the frame format for a LEX_RCMD_REQUEST packet with an Inventory Request remote command option. The host router transmits the fields from left to right, so read it left to right too ๐Ÿ‘€

Figure 18 LEX_RCMD_REQUEST Packet Frame Format - Inventory 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              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 Option
<-------------------------------------------------------------->
 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-Flags |        Option-Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         (1)            (1)                    (2)

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 Option, go to the "Remote Command Options" section earlier in this document ๐Ÿ“š Table 24 gives the summary when you send a LEX_RCMD_REQUEST packet that asks for inventory info ๐ŸŽ€

Table 24 Field Values for LEX_RCMD_REQUEST Packet-Inventory Request

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               12 octets
Option-Type          0x0B (Inventory Request)
Option-Flags         None
Option-Length        4 octets
Option-Data          None

13.2 LEX RCMD_ACK - Inventory Request ๐ŸŒธ

when the unit correctly receives the Inventory Request remote command option and retrieves the inventory info, it replies with an acknowledgment ๐Ÿซง That ack carries the requested inventory info in the Option-Data field ๐Ÿ’œ

Figure 19 shows the frame format for the Inventory Request LEX_RCMD_ACK packet ๐Ÿงš

Figure 19 LEX_RCMD_ACK Packet Frame Format - Inventory 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              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 Option
<--------------------------------
 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:

                            (32 bits)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Flash Size                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Serial Number                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  HW Version   | PROM Major Ver| PROM Minor Ver|Flash Major Ver|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Flash Minor Ver|     FLAGS     | RAM Major Ver | RAM Minor Ver |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+   Mac Address (6 octets)      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

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 Option, go to the "Remote Command Options" section earlier in this document ๐Ÿ“š Table 25 is the summary for when you're acknowledging a LEX_RCMD_REQUEST packet that asks for inventory info ๐Ÿ’…

Table 25 Field Values for LEX_RCMD_ACK Packet - Inventory Request

Field                Value
Address/Control      0xFF03 (Broadcast address/Unnumbered
                     information)
Protocol-Type        0x8041 (Control packet)
Code                 0x41 (LEX_RCMD_ACK packet)
Identifier           The same value as that sent by
                     LEX_RCMD_REQUEST packet
Length               34 octets
Option-Type          0x0B (Inventory Request)
Option-Flags         None
Option-Length        26 octets
Option-Data          Inventory data. See the following
                     "Option-Data Field Descriptions" section
                     for details.

Option-Data Field Descriptions ๐Ÿซถ

the Option-Data field of the LEX_RCMD_ACK packet uses these fields to send inventory data to the host router about the LAN extension interface unit ๐Ÿงš

  • Flash Size
  • Serial Number
  • HW Version
  • PROM Major Ver
  • PROM Minor Ver
  • Flash Major Ver
  • Flash Minor Ver
  • FLAGS
  • RAM Major Ver
  • RAM Minor Ver
  • MAC Address

Flash Size

This field contains the LAN extension interface unit's Flash size in bytes.

Serial Number

This field provides the LAN extension interface unit's serial number. This is an unassigned, 32-bit number.

HW Version

This field contains the version number of the LAN extension interface hardware unit.

PROM Major Ver

This field contains part of the version number of the PROM image. "Major" indicates which major software release this revision belongs to. For example, if the PROM version number is 1.2, then the major version number is 1.

PROM Minor Ver

This field contains part of the version number of the PROM image. "Minor" indicates which minor software release this revision belongs to. For example, if the PROM version number is 1.2, then the minor version number is 2.

Flash Major Ver

This field contains the "major" version number of the Flash image. For example, if the Flash image version number is 1.2, then the major version number is 1.

Flash Minor Ver

This field contains the "minor" version number of the Flash image. For example, if the Flash image version number is 1.2, then the minor version number is 2.

FLAGS

FLAGS report the boot status of the LAN extension interface unit. The flags are as follows:

  • 0x01 - Running PROM image
  • 0x02 - Running Flash image
  • 0x04 - PROM image passed checksum
  • 0x08 - Flash image passed checksum

RAM Major Ver

This field contains the "major" version number of the running image in RAM. For example, if the RAM image version number is 1.2, then the major version number is 1.

RAM Minor Ver

This field contains the "minor" version number of the running image in RAM. For example, if the RAM image version number is 1.2, then the minor version number is 2.

MAC Address

The MAC Address is the LAN extension interface unit's burned-in MAC address in canonical format. This field is six octets.

13.3 LEX RCMD_NAK/LEX RCMD_REJ - Inventory Request โœจ

okay so for these two response packets, go back to the "Conditions for Sending PPP-LEX Packets" section earlier in this doc ๐Ÿงš That's where you'll find when the LAN extension interface unit actually sends an Inventory Request LEX_RCMD_NAK packet or an Inventory Request LEX_RCMD_REJ packet ๐Ÿ’…

the frame format of these two response packets literally mirrors the request, no cap ๐Ÿฆ‹ Table 26 has all the field values:

      Table 26  Field Values for LEX_RCMD_NAK/LEX_RCMD_REJ Packets -
                             Inventory Request

   Field                Value
   Address/Control      0xFF03 (Broadcast address/Unnumbered
                        information)
   Protocol-Type        0x8041 (Control packet)
   Code                 Valid values:
                        * 0x42 (LEX_RCMD_NAK packet)
                        * 0x43 (LEX_RCMD_REJ packet)
   Identifier           The same value as that sent by the
                        LEX_RCMD_REQUEST packet
   Length               12 octets
   Option-Type          0x0B (Inventory Request)
   Option-Flags         None
   Option-Length        4 octets
   Option-Data          None

14.0 LAN Extension Interface Protocol Data Packets ๐ŸŒˆ

okay this part is giving data packets ๐Ÿซถ When the PPP-LEX NCP is in an "opened" state, the LAN extension interface unit and the host router also swap PPP-LEX data packets (on top of the control packets). There is only one type of PPP-LEX data packet, and it's a subset of the PPP-BCP packet format ๐Ÿ‘‘

the subsetting is set up so that a PPP-BCP implementation will successfully process a LAN extension interface protocol packet. ngl that's so smart ๐Ÿ˜ญ The differences are:

  • LAN ID field will not be present.
  • LAN FCS field will never be present (that is, the F flag will always be off [=0]).
  • LAN ID flag (I) will always be off.
  • Pad field for the serial link will never be present, and the count field will be 0.

if you want the full deets on PPP-BCP packets, check the "PPP Bridging Control Protocol (BCP)" RFC. (References, [2]) ๐ŸŽ€


14.1 Frame Format

Figure 20 shows the frame format for a PPP-LEX data packet ๐ŸŒธ The MAC frame gets transferred except for the FCS field. The LAN extension interface unit computes the FCS for packets going to the LAN, and it strips the FCS for packets headed to the host router. the way that split works is so clean ๐Ÿ“

                Figure 20  PPP-LEX Data Packet Frame Format

    (8 bits)         (8 bits)      (8 bits)         (8 bits)
+-+-+-+-+-+-+-+-+
|   HDLC FLAG   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     0xFF      |      0x03     |             0x0041            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| F|I|Z|0| Pad  |    Mac Type   |    Destination MAC Address    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Destination MAC Address                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Source MAC Address                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Source MAC Address      |           Length/Type         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           LLC Data                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       ...                                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       (Serial) HDLC CRC       |  HDLC FLAG    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

14.2 Summary Field Descriptions

okay now the field-by-field tea โ˜•๐Ÿ’–

HDLC FLAG

HDLC Frame delimiter. โœจ

0xFF

This Address field contains the broadcast address. ๐Ÿ“ข

0x03

This Control field contains unnumbered information. ๐Ÿงš

0x0041

This field contains the IETF-assigned protocol type value for a PPP-LEX data packet. In this case this field will always contain 0x0041. ๐Ÿ’œ

Flags

The flags F, I, Z, 0 have these meanings:

  • F: Set bit F if the LAN FCS field is present. Because PPP-LEX data packets do not contain the LAN FCS field, this bit should not be set (field=0).
  • I: Set bit I if the LAN ID field is present. Because PPP-LEX data packets do not contain the field, this bit should not be set (field=0).
  • Z: Set bit Z if IEEE 802.3 Pad must be zero filled to minimum size.
  • 0: Reserved, must be zero.

Pad

Any PPP frame may have padding inserted in the Optional Data Link Layer Padding field. The value tells the receiving system how many pad octets to strip off. The LAN extension interface protocol does not support the Optional Data Link Layer Padding field, so the value of this field should be zero. ๐Ÿ™ˆ

MAC Type

This field contains the most up-to-date value of the MAC type as specified in the most recent "Assigned Numbers" RFC. The current value is:

  • 1: IEEE 802.3/Ethernet with canonical addresses

Destination MAC Address

This field is 6 octets and contains the MAC address of the destination system as defined by IEEE. The MAC Type field defines the bit ordering. ๐Ÿ“

Source MAC Address

This field is 6 octets and contains the MAC address of the destination system as defined by IEEE. The MAC Type field defines the bit ordering. ๐ŸŒˆ

Length/Type

This field is any Ethernet protocol type (See RFC 1700 in the references "Assigned Numbers"). For IEEE 802.3 frames, this is a length field. ๐Ÿฆ‹

LLC Data

This field is the remainder of the MAC frame which is (or would be if it were present) protected by the LAN FCS. ๐Ÿซถ

(Serial) HDLC CRC

This is a 16 bit Cyclic Redundancy Check field. ๐Ÿ”ฅ

For complete info on all the fields above and how they relate to PPP-BCP packets, check the "PPP Bridging Control Protocol (BCP)" RFC. (References, [2]) ๐Ÿ’…


Notes

  1. The LAN extension interface protocol does allow the segmentation of individual LAN packets across the serial link. Each LAN packet must be transmitted across the serial link as one PPP-LEX encapsulation. ๐ŸŽ€
  2. MAC addresses in PPP-LEX packets should be in canonical format. ๐Ÿ’–

References

[1] Simpson, W., "The Point-To-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-To-Point Links", RFC 1331, Daydreamer, May 1992.

[2] Baker, F., and R. Bowen, "PPP Bridging Control Protocol (BCP)", RFC 1638, ACC, IBM, June 1994.

[3] Lloyd, B., and W. Simpson, "PPP Authentication Protocols", RFC 1334, Lloyd & Associates, Daydreamer, October 1992.

[4] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, USC/Information Sciences Institute, October 1994.

[5] Reynolds, J., and J. Postel, "Standard for the transmission of IP datagrams over IEEE 802 networks", RFC 1042, USC/Information Sciences Institute, February 1988.


Security Considerations ๐Ÿ”’

Security issues are not discussed in this memo. ๐Ÿ˜ญ


Authors' Addresses ๐Ÿงš

Joelle Bafile Chapman, Technical Writer
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706

EMail: joelle@cisco.com


Dave Coli, Software Engineer
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706

EMail: dcoli@cisco.com


Andy Harvey, Software Engineer
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706

EMail: agh@cisco.com


Bent Jensen, Engineering Manager
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706

EMail: bent@cisco.com


Kevin Rowett, Software Engineer
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706

EMail: krowett@cisco.com
๐Ÿ“ฆ where this page comes from