| Lower layer | Selector | Value |
udp | dst_port / src_port | 69 (0x0045) |
| Field | Type | Default | Auto | Description |
opcode | enum(16) | 1 (rrq) | | TFTP opcode (1 = RRQ, 2 = WRQ, 3 = DATA, 4 = ACK, 5 = ERROR, 6 = OACK). |
filename | cstring | "boot.bin" | | File name (NUL-terminated). |
mode | cstring | "octet" | | Transfer mode: netascii, octet or mail (NUL-terminated). |
options | list<struct> — rest of the PDU | [] | | Option name / value string pairs (RFC 2347): blksize, timeout, tsize, windowsize, … |
| Value | Name |
| 1 (0x0001) | rrq |
| 2 (0x0002) | wrq |
| 3 (0x0003) | data |
| 4 (0x0004) | ack |
| 5 (0x0005) | error |
| 6 (0x0006) | oack |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
name | cstring | "blksize" | | |
value | cstring | "1428" | | |
The next layer is selected by opcode; when the field is Auto the builder writes the value of the protocol stacked above.
| Value | Protocol | Note |
| 3 (0x0003) | tftp_data | re-decodes this layer |
| 4 (0x0004) | tftp_ack | re-decodes this layer |
| 5 (0x0005) | tftp_error | re-decodes this layer |
| 6 (0x0006) | tftp_oack | re-decodes this layer |
- tftp-rrq —
templates/protocols/app/tftp-rrq.wpg.yaml