[Cake] flow dissection vs encapsulated traffic?

Dave Taht dave.taht at gmail.com
Sun Feb 5 16:44:16 EST 2023


In looking how the code has morphed since I last looked at it, I found
myself staring at this bit...

        skb_flow_dissect_flow_keys(skb, &keys,
                                   FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL);

// so we have delved deeply into the packet at this point... finding
various encapsulations...

then we get to:

        /* Don't use the SKB hash if we change the lookup keys from conntrack */
        if (nat_enabled && cake_update_flowkeys(&keys, skb))
                use_skbhash = false;

This leverages skb_protocol(), which as best as I can tell just peers
into the *vlan headers*,
not deeper into the packet...

Then we proceed merrily into the update_flowkeys code thinking it is
the outer type
(ipv4), not the inner, then dissect away, using a v4 union...

Am I reading this wrong? Please tell me I am reading this wrong...




-- 
This song goes out to all the folk that thought Stadia would work:
https://www.linkedin.com/posts/dtaht_the-mushroom-song-activity-6981366665607352320-FXtz
Dave Täht CEO, TekLibre, LLC


More information about the Cake mailing list