PPPoE Discovery (pppoe_discovery)
- Layer: L2 (data link)
- Header: variable length
- Notes: L2 control protocols
Reached from
| Lower layer | Selector | Value |
|---|---|---|
ethernet2 | ethertype | 34915 (0x8863) |
Fields
| Field | Type | Default | Auto | Description |
|---|---|---|---|---|
version | uint(4) | 1 | PPPoE protocol version (1). | |
type | uint(4) | 1 | PPPoE type (1). | |
code | enum(8) | 9 (padi) | PPPoE code (PADI / PADO / PADR / PADS / PADT, 0 = session data). | |
session_id | uint(16) | 0 | PPPoE session identifier. | |
length | uint(16) | Length of the header in octets (-6) | Length of the PPPoE payload, in octets (Auto). | |
tags | tlv — length octets | PPPoE discovery TAGs (16-bit type, 16-bit length). |
code
| Value | Name |
|---|---|
| 0 (0x00) | session_data |
| 9 (0x09) | padi |
| 7 (0x07) | pado |
| 25 (0x19) | padr |
| 101 (0x65) | pads |
| 167 (0xa7) | padt |
tags
- Type 16 bits, length 16 bits.
- The length counts the value only.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
|---|---|---|---|
| 0 (0x0000) | end_of_list | ||
| 257 (0x0101) | service_name | ||
| 258 (0x0102) | ac_name | ||
| 259 (0x0103) | host_uniq | ||
| 260 (0x0104) | ac_cookie | ||
| 261 (0x0105) | vendor_specific | ||
| 272 (0x0110) | relay_session_id | ||
| 513 (0x0201) | service_name_error | ||
| 514 (0x0202) | ac_system_error | ||
| 515 (0x0203) | generic_error |
Sample templates
- pppoe-discovery —
templates/protocols/l2/pppoe-discovery.wpg.yaml