Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-09 Thread John Fastabend
Cong Wang wrote: > On Fri, Mar 5, 2021 at 5:55 PM John Fastabend > wrote: > > [...] > > > // tcp_bpf_prots->unhash == sock_map_unhash > > > sk_psock_restore_proto(); > > > // Now tcp_bpf_prots->unhash is inet_unhash > > > ... > > > sk_psock_update_proto(); > > > // sk->sk_proto is now tcp_bpf_

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-09 Thread Cong Wang
On Fri, Mar 5, 2021 at 5:55 PM John Fastabend wrote: > > Cong Wang wrote: > > On Fri, Mar 5, 2021 at 4:27 PM John Fastabend > > wrote: > > > > > > Cong Wang wrote: > > > > On Tue, Mar 2, 2021 at 10:23 AM Cong Wang > > > > wrote: > > > > > > > > > > On Tue, Mar 2, 2021 at 8:22 AM Lorenz Bauer

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-05 Thread John Fastabend
Cong Wang wrote: > On Fri, Mar 5, 2021 at 4:27 PM John Fastabend > wrote: > > > > Cong Wang wrote: > > > On Tue, Mar 2, 2021 at 10:23 AM Cong Wang > > > wrote: > > > > > > > > On Tue, Mar 2, 2021 at 8:22 AM Lorenz Bauer wrote: > > > > > > > > > > On Tue, 2 Mar 2021 at 02:37, Cong Wang > > >

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-05 Thread Cong Wang
On Fri, Mar 5, 2021 at 4:27 PM John Fastabend wrote: > > Cong Wang wrote: > > On Tue, Mar 2, 2021 at 10:23 AM Cong Wang wrote: > > > > > > On Tue, Mar 2, 2021 at 8:22 AM Lorenz Bauer wrote: > > > > > > > > On Tue, 2 Mar 2021 at 02:37, Cong Wang wrote: > > > > > > > > ... > > > > > static inlin

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-05 Thread John Fastabend
Cong Wang wrote: > On Tue, Mar 2, 2021 at 10:23 AM Cong Wang wrote: > > > > On Tue, Mar 2, 2021 at 8:22 AM Lorenz Bauer wrote: > > > > > > On Tue, 2 Mar 2021 at 02:37, Cong Wang wrote: > > > > > > ... > > > > static inline void sk_psock_restore_proto(struct sock *sk, > > > >

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-04 Thread Cong Wang
On Tue, Mar 2, 2021 at 10:23 AM Cong Wang wrote: > > On Tue, Mar 2, 2021 at 8:22 AM Lorenz Bauer wrote: > > > > On Tue, 2 Mar 2021 at 02:37, Cong Wang wrote: > > > > ... > > > static inline void sk_psock_restore_proto(struct sock *sk, > > > struct sk_ps

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-04 Thread Lorenz Bauer
On Wed, 3 Mar 2021 at 18:21, Cong Wang wrote: > > Yeah, I am not surprised we can change tcp_update_ulp() too, but > why should I bother kTLS when I do not have to? What you suggest > could at most save us a bit of code size, not a big gain. So, I'd keep > its return value as it is, unless you see

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-03 Thread Cong Wang
On Wed, Mar 3, 2021 at 1:35 AM Lorenz Bauer wrote: > > On Tue, 2 Mar 2021 at 18:23, Cong Wang wrote: > > > > > if the function returned a struct proto * like it does at the moment. > > > That way we keep sk->sk_prot manipulation confined to the sockmap code > > > and don't have to copy paste it i

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-03 Thread Lorenz Bauer
On Tue, 2 Mar 2021 at 18:23, Cong Wang wrote: > > > if the function returned a struct proto * like it does at the moment. > > That way we keep sk->sk_prot manipulation confined to the sockmap code > > and don't have to copy paste it into every proto. > > Well, TCP seems too special to do this, as

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-02 Thread Cong Wang
On Tue, Mar 2, 2021 at 8:22 AM Lorenz Bauer wrote: > > On Tue, 2 Mar 2021 at 02:37, Cong Wang wrote: > > ... > > static inline void sk_psock_restore_proto(struct sock *sk, > > struct sk_psock *psock) > > { > > sk->sk_prot->unhash = psock->saved_

Re: [Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-02 Thread Lorenz Bauer
On Tue, 2 Mar 2021 at 02:37, Cong Wang wrote: ... > @@ -350,25 +351,12 @@ static inline void sk_psock_cork_free(struct sk_psock > *psock) > } > } > > -static inline void sk_psock_update_proto(struct sock *sk, > -struct sk_psock *psock, > -

[Patch bpf-next v2 2/9] sock: introduce sk_prot->update_proto()

2021-03-02 Thread Cong Wang
From: Cong Wang Currently sockmap calls into each protocol to update the struct proto and replace it. This certainly won't work when the protocol is implemented as a module, for example, AF_UNIX. Introduce a new ops sk->sk_prot->update_proto(), so each protocol can implement its own way to repla