Skip to content

: SIP helper update

Patrick McHardy netfilter-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest32 patches 5 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/32: ipt_CLUSTERIP: fix non-existant macro-namenet/ipv4/netfilter/ipt_CLUSTERIP.c+1 -10 replies
2/32: nf_conntrack: fix NF_CT_TUPLE_DUMP for IPv4include/net/netfilter/nf_conntrack_tuple.h+33 -52 replies
3/32: nf_conntrack_expect: constify nf_ct_expect_init argumentsinclude/net/netfilter/nf_conntrack_expect.h net/netfilter/nf_conntrack_expect.c+6 -60 replies
4/32: nf_conntrack_expect: show NF_CT_EXPECT_PERMANENT flag in /procnet/netfilter/nf_conntrack_expect.c+4 -00 replies
5/32: nf_conntrack_expect: support inactive expectationsinclude/net/netfilter/nf_conntrack_expect.h net/netfilter/nf_conntrack_expect.c+23 -50 replies
6/32: nf_conntrack: introduce expectation classes and policiesinclude/net/netfilter/nf_conntrack.h include/net/netfilter/nf_conntrack_expect.h include/net/netfilter/nf_conntrack_helper.h +12 more+166 -772 replies
7/32: Add nf_inet_addr_cmp()include/linux/netfilter.h include/net/netfilter/nf_conntrack_tuple.h+12 -120 replies
8/32: nf_nat_sip: fix NAT setup ordernet/ipv4/netfilter/nf_nat_sip.c+6 -60 replies
9/32: nf_conntrack_sip: fix some off-by-onesnet/netfilter/nf_conntrack_sip.c+8 -80 replies
10/32: nf_conntrack_sip: adjust dptr and datalen after packet manglinginclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+60 -510 replies
11/32: nf_conntrack_sip: remove redundant function argumentsinclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+37 -430 replies
12/32: nf_conntrack_sip: use strlen/strcmpnet/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+12 -120 replies
13/32: nf_conntrack_sip: add seperate SDP header parsing functioninclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+169 -1080 replies
14/32: nf_conntrack_sip: kill request URI "header" definitionsinclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+77 -380 replies
15/32: nf_conntrack_sip: parse SIP headers properlyinclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+151 -1680 replies
16/32: nf_conntrack_sip: introduce SIP-URI parsing helperinclude/linux/netfilter/nf_conntrack_sip.h net/netfilter/nf_conntrack_sip.c+112 -00 replies
17/32: nf_nat_sip: get rid of text based header translationinclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+62 -680 replies
18/32: nf_conntrack_sip: move SDP parsing to seperate functionnet/netfilter/nf_conntrack_sip.c+43 -410 replies
19/32: nf_conntrack_sip: support method specific request/response handlinginclude/linux/netfilter/nf_conntrack_sip.h net/netfilter/nf_conntrack_sip.c+117 -100 replies
20/32: nf_conntrack_sip: perform NAT after parsingnet/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+11 -110 replies
21/32: nf_conntrack_sip: process ACK and PRACK methodsnet/netfilter/nf_conntrack_sip.c+13 -00 replies
22/32: nf_conntrack_sip: flush expectations on call terminationnet/netfilter/nf_conntrack_sip.c+48 -40 replies
23/32: nf_conntrack_sip: introduce URI and header parameter parsing helpersinclude/linux/netfilter/nf_conntrack_sip.h net/netfilter/nf_conntrack_sip.c+68 -00 replies
24/32: nf_nat_sip: translate all Via headersnet/ipv4/netfilter/nf_nat_sip.c+73 -10 replies
25/32: nf_nat_sip: translate all Contact headersnet/ipv4/netfilter/nf_nat_sip.c+15 -40 replies
26/32: nf_conntrack_sip: create signalling expectationsinclude/linux/netfilter/nf_conntrack_sip.h include/net/netfilter/nf_conntrack.h net/ipv4/netfilter/nf_nat_sip.c +1 more+332 -330 replies
27/32: nf_conntrack_sip: allow media expectations with wildcard source addressnet/netfilter/nf_conntrack_sip.c+41 -40 replies
28/32: nf_conntrack_sip: create RTCP expectationsinclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+66 -370 replies
29/32: nf_nat_sip: split up SDP manglinginclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+219 -690 replies
30/32: nf_conntrack_sip: support multiple media channelsinclude/linux/netfilter/nf_conntrack_sip.h include/net/netfilter/nf_conntrack.h net/netfilter/nf_conntrack_sip.c+105 -320 replies
31/32: nf_conntrack_sip: RTP routing optimizationinclude/linux/netfilter/nf_conntrack_sip.h net/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+58 -100 replies
32/32: nf_conntrack_sip: update copyrightnet/ipv4/netfilter/nf_nat_sip.c net/netfilter/nf_conntrack_sip.c+4 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [METFILTER 00/32]: SIP helper update

Hi Dave,

these patches for 2.6.26 contain a large update for the SIP connection tracking helper, fixing a number of issues with the current helper and improving robustness. A rough overview of the patches follows, the details are in the individual changelog entries:

- Fix NAT mapping setup order to make the NAT core properly detect clashes with existing connections

- Properly adjust the data pointer and length after packet mangling

- Parser enhancements: follow specification more closely (case sensitivity, header encoding, whitespace rules, ...)

- Optionally create signalling expectations for incoming calls from other endpoints than the registrar

- Support for RTCP expectations and multiple media channels

- Optionally create wildcard RTP/RTCP expectations for incoming media from other peers than the registrar

- "Expectation classes" for isolating signalling, audio and video expectations from each other

- Replacement of text-based header translation in NAT helper by binary address translation, support for updating rport=, received= and mport= Via-parameters

- RTP routing optimization for making RTP streams between two "internal" endpoints flow directly between the two endpoints in case the (external) registrar tries to make direct RTP setup

The patches are also available in a git-tree for your convencience at:

git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6.26-sip.git

Please apply or pull, thanks.

 include/linux/netfilter.h                   |    9 +
 include/linux/netfilter/nf_conntrack_sip.h  |  185 +++-
 include/net/netfilter/nf_conntrack.h        |    7 +-
 include/net/netfilter/nf_conntrack_expect.h |   22 +-
 include/net/netfilter/nf_conntrack_helper.h |    5 +-
 include/net/netfilter/nf_conntrack_tuple.h  |   53 +-
 net/ipv4/netfilter/ipt_CLUSTERIP.c          |    2 +-
 net/ipv4/netfilter/nf_nat_sip.c             |  556 +++++++----
 net/ipv4/netfilter/nf_nat_snmp_basic.c      |   12 +-
 net/netfilter/nf_conntrack_amanda.c         |   14 +-
 net/netfilter/nf_conntrack_expect.c         |   81 ++-
 net/netfilter/nf_conntrack_ftp.c            |   10 +-
 net/netfilter/nf_conntrack_h323_main.c      |   66 +-
 net/netfilter/nf_conntrack_helper.c         |    3 +-
 net/netfilter/nf_conntrack_irc.c            |   10 +-
 net/netfilter/nf_conntrack_netbios_ns.c     |    9 +-
 net/netfilter/nf_conntrack_pptp.c           |   14 +-
 net/netfilter/nf_conntrack_sane.c           |   11 +-
 net/netfilter/nf_conntrack_sip.c            | 1386 +++++++++++++++++++++------
 net/netfilter/nf_conntrack_tftp.c           |   11 +-
 20 files changed, 1877 insertions(+), 589 deletions(-)

Patrick McHardy (32):
[NETFILTER]: ipt_CLUSTERIP: fix non-existant macro-name
[NETFILTER]: nf_conntrack: fix NF_CT_TUPLE_DUMP for IPv4
[NETFILTER]: nf_conntrack_expect: constify nf_ct_expect_init arguments [NETFILTER]: nf_conntrack_expect: show NF_CT_EXPECT_PERMANENT flag in /proc [NETFILTER]: nf_conntrack_expect: support inactive expectations [NETFILTER]: nf_conntrack: introduce expectation classes and policies [NETFILTER]: Add nf_inet_addr_cmp()
[NETFILTER]: nf_nat_sip: fix NAT setup order
[NETFILTER]: nf_conntrack_sip: fix some off-by-ones
[NETFILTER]: nf_conntrack_sip: adjust dptr and datalen after packet mangling [NETFILTER]: nf_conntrack_sip: remove redundant function arguments [NETFILTER]: nf_conntrack_sip: use strlen/strcmp
[NETFILTER]: nf_conntrack_sip: add seperate SDP header parsing function [NETFILTER]: nf_conntrack_sip: kill request URI "header" definitions [NETFILTER]: nf_conntrack_sip: parse SIP headers properly [NETFILTER]: nf_conntrack_sip: introduce SIP-URI parsing helper [NETFILTER]: nf_nat_sip: get rid of text based header translation [NETFILTER]: nf_conntrack_sip: move SDP parsing to seperate function [NETFILTER]: nf_conntrack_sip: support method specific request/response handling [NETFILTER]: nf_conntrack_sip: perform NAT after parsing
[NETFILTER]: nf_conntrack_sip: process ACK and PRACK methods [NETFILTER]: nf_conntrack_sip: flush expectations on call termination [NETFILTER]: nf_conntrack_sip: introduce URI and header parameter parsing helpers [NETFILTER]: nf_nat_sip: translate all Via headers
[NETFILTER]: nf_nat_sip: translate all Contact headers
[NETFILTER]: nf_conntrack_sip: create signalling expectations [NETFILTER]: nf_conntrack_sip: allow media expectations with wildcard source address [NETFILTER]: nf_conntrack_sip: create RTCP expectations
[NETFILTER]: nf_nat_sip: split up SDP mangling
[NETFILTER]: nf_conntrack_sip: support multiple media channels [NETFILTER]: nf_conntrack_sip: RTP routing optimization
[NETFILTER]: nf_conntrack_sip: update copyright