On 2015-09-18, David Gwynne <da...@gwynne.id.au> wrote: > this lets pf embed the state id into the mbuf as a "flow id" so > other subsystems can use it. eg, trunk can pull it out and use it.
I like this but it does change the path distribution. Previously all flows from host A to host B were bound to a single path, now they are spread across paths. This is good for making fuller use of paths but can make fault diagnosis harder. I tried to work out the best way to make this optional when I sent my earlier L4-hash diff (using PF states for this has similar results and is far more elegant) but didn't settle on an approach. Switches doing this usually have a single global setting (e.g. sysctl), which seems a bit of a blunt instrument but would be easier to apply to areas other than trunk (e.g. multipath routing). We could use an ioctl if ifconfig(8) isn't full already, though I don't think we actually need any more options than "L3-bound" and "per-flow" so using the existing link0 scaffolding would be an easier way to do this per-trunk but I didn't really get a feel for whether people thought that was good enough.