netfilter: nf_conntrack_sip: allow duplicate SDP expectations
authorFlorian Westphal <fw@strlen.de>
Tue, 3 Apr 2018 10:10:09 +0000 (12:10 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 9 Apr 2018 15:05:27 +0000 (17:05 +0200)
commit876c27314ce51fe7e7e2aeb24a6448da1a26c78f
tree4f4a41d69e17ec2e31b66e089bdb108121fe3969
parenta2ac99905f1ea8b15997a6ec39af69aa28a3653b
netfilter: nf_conntrack_sip: allow duplicate SDP expectations

Callum Sinclair reported SIP IP Phone errors that he tracked down to
such phones sending session descriptions for different media types but
with same port numbers.

The expect core will only 'refresh' existing expectation if it is
from same master AND same expectation class (media type).
As expectation class is different, we get an error.

The SIP connection tracking code will then

1). drop the SDP packet
2). if an rtp expectation was already installed successfully,
    error on rtcp expectation will cancel the rtp one.

Make the expect core report back to caller when the conflict is due
to different expectation class and have SIP tracker ignore soft-error.

Reported-by: Callum Sinclair <Callum.Sinclair@alliedtelesis.co.nz>
Tested-by: Callum Sinclair <Callum.Sinclair@alliedtelesis.co.nz>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_expect.c
net/netfilter/nf_conntrack_sip.c