Hi, On Mon, Feb 24, 2020 at 01:22:51PM +0800, wenxu@xxxxxxxxx wrote: > From: wenxu <wenxu@xxxxxxxxx> > > This patch provide tunnel offload based on route lwtunnel. > The first two patches support indr callback setup > Then add tunnel match and action offload. > > This version modify the second patch: make the dev can bind with different > flowtable and check the NF_FLOWTABLE_HW_OFFLOAD flags in > nf_flow_table_indr_block_cb_cmd. I found some time to look at this indirect block infrastructure that you have added to net/core/flow_offload.c This is _complex_ code, I don't understand why it is so complex. Frontend calls walks into the driver through callback, then, it gets back to the front-end code again through another callback to come back... this is hard to follow. Then, we still have problem with the existing approach that you propose, since there is 1:N mapping between the indirect block and the net_device. Probably not a requirement in your case, but the same net_device might be used in several flowtables. Your patch is flawed there and I don't see an easy way to fix this. I know there is no way to use ->ndo_setup_tc for tunnel devices, but you could have just make it work making it look consistent to the ->ndo_setup_tc logic. I'm inclined to apply this patch though, in the hope that this all can be revisited later to get it in line with the ->ndo_setup_tc approach. However, probably I'm hoping for too much. Thank you.