p4lang / pna

Portable NIC Architecture
Apache License 2.0
55 stars 21 forks source link

Specify IPv6 link-local multicast? #61

Closed hesingh closed 1 year ago

hesingh commented 1 year ago

See

https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml#link-local

The nic could send out an RA message, as specified in rfc4861, to a link-local multicast address. If the nic has two network ports the RA could need replication to both ports. To snoop dhcpv6, listening on dhcpv6 link-local multicast address in required. Should we get to this level of detail in the spec? If IPv6 is supported by the nic, it is mandatory to support rfc4861 and rfc4862.

jafingerhut commented 1 year ago

This sounds like the kind of detail, amongst hundreds of others, that people would tend to implement using slow path general purpose CPU software to implement, with just enough logic in the fast path to decide that the received packets were not handled in the fast path, and punted to the CPU (typically an on-ASIC CPU for modern NICs, perhaps an ARM core), and the software running on that CPU would be responsible for responding.

Control protocols like RA are typically very low packet rates, and thus fine for software on a CPU to handle.

hesingh commented 1 year ago

OK. This is a reference to look at too, does dhcp snooping on nic.

https://ethernitynet.com/cornerstones/router-on-nic/

Also see, https://www.rfc-editor.org/rfc/rfc7084

jfingerh commented 1 year ago

There are probably hundreds of RFCs and IETF standards that one might want to implement in a NIC. There is no reason for PNA or PSA to list them all. That is a job for people developing products to write the correct software, P4 and control plane and otherwise, to implement, if they wish to implement those standards.

If an RFC is especially relevant to something that we want to implement in PSA or PNA, then it might make sense to list, e.g. how 2-rate or 3-rate policers work, or how IPsec encryption/decryption work, but only because those are especially relevant to the fast path implementation.

hesingh commented 1 year ago

I agree that right now crypto is the only feature one can think of for data plane. But let's mull over few rfcs and see if anything is missed. I volunteer to read the IPv6 Node Requirements doc and get back.

There is a single IPv6 rfc that will help.

https://datatracker.ietf.org/doc/html/rfc8504

However at the time of writing the above doc, another rfc was missed. It is:

https://www.rfc-editor.org/rfc/rfc7527

hesingh commented 1 year ago

I looked at rfc8504 and did not find anything as a MUST requirement for data plane.