session
Click on the red underlined text to get to the source
... Ethernet address of the remote peer, as well
as establish a unique session identifier. PPPoE includes a discovery
protocol that provides this.
...
... PPPoE has two distinct stages. There is a Discovery stage and a PPP
Session stage. When a Host wishes to initiate a PPPoE session, it
...
... Session stage. When a Host wishes to initiate a PPPoE session, it
must first perform Discovery to identify the Ethernet MAC address ...
... Ethernet MAC address of
the peer and establish a PPPoE SESSION_ID. While PPP defines a
peer-to-peer ...
... The Discovery stage remains stateless until a PPP session is
established. Once a PPP session ...
... session is
established. Once a PPP session is established, both the Host and
the Access Concentrator MUST allocate the resources for a PPP ...
... address as defined in the Discovery section. For PPP session
traffic, this field MUST contain the peer's unicast address ...
... The ETHER_TYPE is set to either 0x8863 (Discovery Stage) or 0x8864
(PPP Session Stage).
The Ethernet ...
... 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VER | TYPE | CODE | SESSION_ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LENGTH | payload ...
... Session stages.
The SESSION_ID field is sixteen bits. It is an unsigned value in
network byte order ...
... network byte order. It's value is defined below for Discovery
packets. The value is fixed for a given PPP session and, in fact,
defines a PPP session ...
... session and, in fact,
defines a PPP session along with the Ethernet SOURCE_ADDR and
DESTINATION ...
...
There are four steps to the Discovery stage. When it completes, both
peers know the PPPoE SESSION_ID and the peer's Ethernet address,
...
... Ethernet address,
which together define the PPPoE session uniquely. The steps consist
of the Host broadcasting ...
... broadcasting an Initiation packet, one or more Access
Concentrators sending Offer packets, the Host sending a unicast
Session Request packet and the selected Access Concentrator sending a
Confirmation packet. When the Host receives the Confirmation packet,
...
... Host receives the Confirmation packet,
it may proceed to the PPP Session Stage. When the Access
Concentrator sends the Confirmation packet, it may proceed to the PPP
...
... Concentrator sends the Confirmation packet, it may proceed to the PPP
Session Stage.
All Discovery Ethernet frames ...
... header) MUST NOT exceed 1484 octets so as to leave sufficient room
for a relay agent to add a Relay-Session-Id TAG.
...
... Host that sent the PADI. The CODE field is
set to 0x07 and the SESSION_ID MUST be set to 0x0000.
The PADO ...
... address of the Access Concentrator that sent
the PADO. The CODE field is set to 0x19 and the SESSION_ID MUST be
set to 0x0000.
...
... PADR packet, it prepares to
begin a PPP session. It generates a unique SESSION_ID for the PPPoE
session and replies to the Host ...
... begin a PPP session. It generates a unique SESSION_ID for the PPPoE
session and replies to the Host with a PADS ...
... PPP session. It generates a unique SESSION_ID for the PPPoE
session and replies to the Host with a PADS packet. The
...
... Host
that sent the PADR. The CODE field is set to 0x65 and the SESSION_ID
MUST be set to the unique value generated for this PPPoE session.
...
... PADR. The CODE field is set to 0x65 and the SESSION_ID
MUST be set to the unique value generated for this PPPoE session.
The PADS ...
... indicating the service under which Access Concentrator has accepted
the PPPoE session, and any number of other TAG types.
...
... Service-Name-Error (and any number of other TAG types). In this case
the SESSION_ID MUST be set to 0x0000.
...
...
This packet may be sent anytime after a session is established to
indicate that a PPPoE session has been terminated. It may be sent by
...
... This packet may be sent anytime after a session is established to
indicate that a PPPoE session has been terminated. It may be sent by
either the Host or the Access Concentrator. The DESTINATION ...
... Ethernet address, the CODE field is set to 0xa7
and the SESSION_ID MUST be set to indicate which session is to be
terminated. No TAGs ...
... address, the CODE field is set to 0xa7
and the SESSION_ID MUST be set to indicate which session is to be
terminated. No TAGs are required.
...
... PPP traffic is allowed to be sent
using that session. Even normal PPP termination packets MUST NOT be
sent after sending or receiving ...
... PPP peer SHOULD use the
PPP protocol itself to bring down a PPPoE session, but the PADT MAY
be used when PPP can not be used.
...
... TYPE
field is set to 0x8864. The PPPoE CODE MUST be set to 0x00. The
SESSION_ID MUST NOT change for that PPPoE session and MUST be the
value assigned in the Discovery stage. The PPPoE ...
... PPPoE CODE MUST be set to 0x00. The
SESSION_ID MUST NOT change for that PPPoE session and MUST be the
value assigned in the Discovery stage. The PPPoE payload ...
... Host to determine the state of the
session. Otherwise, if the Host terminates a session without sending
...
... session. Otherwise, if the Host terminates a session without sending
a Terminate-Request packet, the Access Concentrator will not be able
to determine that the session ...
... session without sending
a Terminate-Request packet, the Access Concentrator will not be able
to determine that the session has gone away.
When LCP ...
... LCP terminates, the Host and Access concentrator MUST stop using
that PPPoE session. If the Host wishes to start another PPP ...
... PADI SOURCE_ADDR is indeed reachable and can then limit concurrent
sessions for that address. What algorithm to use is not defined and
...
... PADI packets MUST guarantee sufficient room for the addition of a
Relay-Session-Id TAG with a TAG_VALUE length of 12 octets ...
... 12 octets.
A Relay-Session-Id TAG MUST NOT be added if the discovery packet
already contains one. In that case the intermediate agent ...
... already contains one. In that case the intermediate agent SHOULD
use the existing Relay-Session-Id TAG. If it can not use the
existing TAG ...
... existing TAG or there is insufficient room to add a Relay-
Session-Id TAG, then it SHOULD return a Generic-Error TAG to the
...
... | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x09 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SESSION_ID = 0x0000 | LENGTH = 0x0004 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG ...
... | ETHER_TYPE = 0x8863 | v = 1 | t = 1 | CODE = 0x07 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SESSION_ID = 0x0000 | LENGTH = 0x0020 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TAG ...
... | ETHER_TYPE = 0x8864 | v = 1 | t = 1 | CODE = 0x00 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SESSION_ID = 0x1234 | LENGTH = 0x???? |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP ...
