bpf: fix bug in tuple->{s,d,}addr restore after map update
bpf: fix bug in tuple->{s,d,}addr restore after map update

In ct_create4(), we store the current tuple address in addr and
overwrite the tuple address with ct_state->addr. Later after the
map_update_elem() that addr gets restored back into the tuple
address. However, 7afe903203c3 ("bpf: Global 5 tuple conntrack.")
reused addr for the cilium_trace() prior to the map update, so
it got overridden again with the already updated tuple address.
Given this whole ifdef mess is really hard to parse, move this
into a dedicated helper.

Signed-off-by: Madhu Challa <d22477479bbf55ba62bd822f4112c80f292c7805@cilium.io>
[ dbkm: reworked the original patch from slack ]
Signed-off-by: Daniel Borkmann <3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@cilium.io>

cilium-team/cilium,scanf/cilium,cilium/cilium,tklauser/cilium,tgraf/cilium,mskarbek/cilium,gumpt/cilium,eloycoto/cilium,scanf/cilium,gumpt/cilium,michi-covalent/cilium,scanf/cilium,michi-covalent/cilium,eloycoto/cilium,scanf/cilium,eloycoto/cilium,eloycoto/cilium,mskarbek/cilium,mskarbek/cilium,scanf/cilium,mskarbek/cilium,tklauser/cilium,gumpt/cilium,tgraf/cilium,eloycoto/cilium,mskarbek/cilium,gumpt/cilium,tklauser/cilium,scanf/cilium,gumpt/cilium,cilium/cilium,scanf/cilium,tgraf/cilium,tgraf/cilium,michi-covalent/cilium,cilium-team/cilium,cilium/cilium,cilium/cilium,gumpt/cilium,eloycoto/cilium,michi-covalent/cilium,tgraf/cilium,mskarbek/cilium,tklauser/cilium,eloycoto/cilium,michi-covalent/cilium,tklauser/cilium,cilium/cilium,tgraf/cilium,gumpt/cilium