Re: [PATCH net-next v8 1/2] net/sched: cls_flower: remove unions from fl_flow_key
From: Simon Horman <horms@kernel.org>
Date: 2026-03-17 14:38:40
Also in:
lkml
On Mon, Mar 16, 2026 at 04:19:17PM -0700, Jakub Kicinski wrote:
On Mon, 16 Mar 2026 08:34:47 +0000 Simon Horman wrote:quoted
On Sat, Mar 14, 2026 at 10:00:02AM -0700, Jakub Kicinski wrote:quoted
On Fri, 13 Mar 2026 13:26:51 +0000 Simon Horman wrote:quoted
It seems to me that the use of a union is intentional here, as either IPv4 or IPv6 addresses can be present in each case - never both. And that control.addr_type and enc_control.addr_type are intended to allow differentiation of the address type in use for each of these unions.My reading was that the initial author simply wanted to save space in the struct. As the commit message explains this leads to complications in the logic which sets the keys. The alternative is to complicate FL_KEY_SET_IF_MASKED - doable, but given that the union feels like a micro-optimization in the first place the simpler approach of separating fields seems okay too? (TBH my mind also initially went down the FL_KEY_SET_IF_MASKED rabbit hole but once I saw the simplicity of Cedric's patch I changed my mind)Sure, now this has been put to me more than once I agree. But if we go this way, then can we also simplify some of the existing logic? As a follow-up?Which logic do you have in mind? Sorry if I'm being slow.
Sorry for being vague. Let me do my homework and come back if I have a concrete suggestion.