From: Simon Horman <horms@verge.net.au>
To: lvs-devel@vger.kernel.org, netdev@vger.kernel.org,
netfilter@vger.kernel.org, netfilter-devel@vger.kernel.org
Cc: Jan Engelhardt <jengelh@medozas.de>,
Stephen Hemminger <shemminger@vyatta.com>,
Wensong Zhang <wensong@linux-vs.org>,
Julian Anastasov <ja@ssi.bg>, Patrick McHardy <kaber@trash.net>
Subject: Re: [patch v1 00/12] IPVS: SIP Persistence Engine
Date: Sun, 22 Aug 2010 21:57:03 +0900 [thread overview]
Message-ID: <20100822125702.GA26395@verge.net.au> (raw)
In-Reply-To: <20100822124457.339517323@vergenet.net>
On Sun, Aug 22, 2010 at 09:44:57PM +0900, Simon Horman wrote:
> This patch series adds load-balancing of UDP SIP based on Call-ID to
> IPVS as well as a frame-work for extending IPVS to handle alternate
> persistence requirements.
>
> REVISIONS
>
> This is "patch v1" of this series, which addresses a few minor problems, as
> annotated on a per-patch basis, since the initial "rfc" posting. Internally
> there were 4 rfc versions, 0.1, 0.2, 0.3 and 0.4, some of the notes for
> some of the patches reflect those versions.
>
> OVERVIEW
>
> The approach that I have taken is what I call persistence engines.
> The basic idea being that you can provide a module to LVS that alters
> the way that it handles connection templates, which are at the core
> of persistence. In particular, an additional key can be added, and
> any of the normal IP address, port and protocol information can either
> be used or ignored.
>
> In the case of the SIP persistence engine, the only persistence engine, all
> the keys used by the default persistence behaviour are used and the callid
> is added as an extra key. I originally intended to ignore the cip, but this
> can optionally be done by setting the persistence mask (-M) to 0.0.0.0
> while allowing the flexibility of other mask values.
>
> It is envisaged that the SIP persistence engine will be used in conjunction
> with one-packet scheduling. I'm interested to hear if that doesn't fit your
> needs.
>
>
> CONFIGURATION
>
> A persistence engine is associated with a virtual service
> (as are schedulers). I have added the --pe option to the
> ivpsadm -A and -E commands to allow the persistence engine
> of a virtual service to be added, changed, or deleted.
>
> e.g. ipvsadm -A -u 10.4.3.192:5060 -p 60 -M 0.0.0.0 -o --pe sip
>
> There are no other configuration parameters at this time.
>
>
> RUNNING
>
> When a connection template is created, if its virtual service
> has a persistence engine, then the persistence engine can add
> an extra key to the connection template. For the SIP module this
> is the callid. More generically, it is known as "pe data". And
> both the name of the persistence engine, "pe name", and "pe data"
> can be viewed in /proc/net/ip_vs_conn and by passing the
> --persistent-conn option to ipvsadm -Lc.
>
> e.g.
> # ipvsadm -Lcn --persistent-conn
> UDP 00:38 UDP 10.4.3.0:0 10.4.3.192:5060 127.0.0.1:5060 sip 193373839
>
> Here we see a single persistence template (cport is 0), which has been
> handled by the sip persistence engine. The pe data (callid) is 193373839.
>
> In the case where the persistence engine can't match a packet for some
> reason, the connection will fall back to the normal persistence handling.
> This seems reasonable, as that if the packet ought to be dropped, iptables
> could be used.
>
> A limited amount of debugging information has been added which
> can be enabled using a value of 9 or greater in
> /proc/sys/net/ipv4/vs/debug_level
>
> CODE AVAILABILITY
>
> The kernel patches (13) are available in git as the pe-0.4 branch of
> git://git.kernel.org/pub/scm/linux/kernel/git/horms/lvs-test-2.6.git
>
> The ipvsadm patches (2) are available in git as the pe-0.4 branch of
> git://github.com/horms/ipvsadm-test.git
pe-0.4 should read pe-1 above (x2).
pe-0.4 is an older revision.
> I will post the ipvsadm patches separately
next prev parent reply other threads:[~2010-08-22 12:57 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-22 12:44 [patch v1 00/12] IPVS: SIP Persistence Engine Simon Horman
2010-08-22 12:44 ` [patch v1 01/12] netfilter: nf_conntrack_sip: Allow ct_sip_get_header() to be called with a null ct argument Simon Horman
2010-08-22 12:44 ` [patch v1 02/12] netfilter: nf_conntrack_sip: Add callid parser Simon Horman
2010-08-22 12:45 ` [patch v1 03/12] IPVS: compact ip_vs_sched_persist() Simon Horman
2010-08-22 12:45 ` [patch v1 04/12] IPVS: Add struct ip_vs_conn_param Simon Horman
2010-08-22 12:45 ` [patch v1 05/12] IPVS: Allow null argument to ip_vs_scheduler_put() Simon Horman
2010-08-22 12:45 ` [patch v1 06/12] IPVS: ip_vs_{un,}bind_scheduler NULL arguments Simon Horman
2010-08-22 12:45 ` [patch v1 07/12] IPVS: Add struct ip_vs_pe Simon Horman
2010-08-22 12:45 ` [patch v1 08/12] IPVS: Add persistence engine data to /proc/net/ip_vs_conn Simon Horman
2010-08-22 12:45 ` [patch v1 09/12] IPVS: management of persistence engine modules Simon Horman
2010-08-22 12:45 ` [patch v1 10/12] IPVS: Allow configuration of persistence engines Simon Horman
2010-08-22 12:45 ` [patch v1 11/12] IPVS: Fallback if persistence engine fails Simon Horman
2010-08-22 12:45 ` [patch v1 12/12] IPVS: sip persistence engine Simon Horman
2010-08-22 12:57 ` Simon Horman [this message]
2010-09-16 8:12 ` [patch v1 00/12] IPVS: SIP Persistence Engine Patrick McHardy
2010-09-17 2:52 ` Simon Horman
2010-09-17 11:53 ` Patrick McHardy
2010-09-18 12:52 ` Simon Horman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100822125702.GA26395@verge.net.au \
--to=horms@verge.net.au \
--cc=ja@ssi.bg \
--cc=jengelh@medozas.de \
--cc=kaber@trash.net \
--cc=lvs-devel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=netfilter@vger.kernel.org \
--cc=shemminger@vyatta.com \
--cc=wensong@linux-vs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).