| Lower layer | Selector | Value |
ipv4 | protocol | 103 (0x67) |
| Field | Type | Default | Auto | Description |
version | uint(4) | 2 | | PIM version (2). |
type | enum(4) | 0 (hello) | Protocol number of the next layer (see Next layer) | PIM message type (Auto from the body: 0 Hello, 1 Register, 3 Join/Prune). |
reserved | uint(8) | 0 | | |
checksum | uint(16) | | Internet checksum over the header and everything after it | Internet checksum (whole message; Register: first 8 octets only) (Auto). |
| Value | Name |
| 0 | hello |
| 1 | register |
| 2 | register_stop |
| 3 | join_prune |
| 4 | bootstrap |
| 5 | assert |
| 6 | graft |
| 7 | graft_ack |
| 8 | candidate_rp_advertisement |
The next layer is selected by type; when the field is Auto the builder writes the value of the protocol stacked above.
| Level | Rule |
| warning | version = 2 |