openvswitch: Allow attaching helpers to ct action
Add support for using conntrack helpers to assist protocol detection. The new OVS_CT_ATTR_HELPER attribute of the CT action specifies a helper to be used for this connection. If no helper is specified, then helpers will be automatically applied as per the sysctl configuration of net.netfilter.nf_conntrack_helper. The helper may be specified as part of the conntrack action, eg: ct(helper=ftp). Initial packets for related connections should be committed to allow later packets for the flow to be considered established. Example ovs-ofctl flows allowing FTP connections from ports 1->2: in_port=1,tcp,action=ct(helper=ftp,commit),2 in_port=2,tcp,ct_state=-trk,action=ct(recirc) in_port=2,tcp,ct_state=+trk-new+est,action=1 in_port=2,tcp,ct_state=+trk+rel,action=1 Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Acked-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c2ac667358
commit
cae3a26275
2 changed files with 110 additions and 2 deletions
|
@ -626,6 +626,7 @@ struct ovs_action_hash {
|
|||
* @OVS_CT_ATTR_LABEL: %OVS_CT_LABEL_LEN value followed by %OVS_CT_LABEL_LEN
|
||||
* mask. For each bit set in the mask, the corresponding bit in the value is
|
||||
* copied to the connection tracking label field in the connection.
|
||||
* @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG.
|
||||
*/
|
||||
enum ovs_ct_attr {
|
||||
OVS_CT_ATTR_UNSPEC,
|
||||
|
@ -633,6 +634,8 @@ enum ovs_ct_attr {
|
|||
OVS_CT_ATTR_ZONE, /* u16 zone id. */
|
||||
OVS_CT_ATTR_MARK, /* mark to associate with this connection. */
|
||||
OVS_CT_ATTR_LABEL, /* label to associate with this connection. */
|
||||
OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of
|
||||
related connections. */
|
||||
__OVS_CT_ATTR_MAX
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue