hashlimit_htable_gcinterval: '--hashlimit-htable-gcinterval',
bytecode: '-m bpf --bytecode',
zone: '--zone',
+ helper: '--helper',
}
# These are known booleans that do not take a value, but we want to munge
:set_mark, :match_mark, :connlimit_above, :connlimit_mask, :connmark, :time_start, :time_stop, :month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone,
:src_cc, :dst_cc, :hashlimit_upto, :hashlimit_above, :hashlimit_name, :hashlimit_burst,
:hashlimit_mode, :hashlimit_srcmask, :hashlimit_dstmask, :hashlimit_htable_size,
- :hashlimit_htable_max, :hashlimit_htable_expire, :hashlimit_htable_gcinterval, :bytecode, :zone, :name]
+ :hashlimit_htable_max, :hashlimit_htable_expire, :hashlimit_htable_gcinterval, :bytecode, :zone, :helper, :name]
end
bytecode: '-m bpf --bytecode',
ipvs: '-m ipvs --ipvs',
zone: '--zone',
+ helper: '--helper',
}
# These are known booleans that do not take a value, but we want to munge
:month_days, :week_days, :date_start, :date_stop, :time_contiguous, :kernel_timezone,
:src_cc, :dst_cc, :hashlimit_upto, :hashlimit_above, :hashlimit_name, :hashlimit_burst,
:hashlimit_mode, :hashlimit_srcmask, :hashlimit_dstmask, :hashlimit_htable_size,
- :hashlimit_htable_max, :hashlimit_htable_expire, :hashlimit_htable_gcinterval, :bytecode, :ipvs, :zone, :name
+ :hashlimit_htable_max, :hashlimit_htable_expire, :hashlimit_htable_gcinterval, :bytecode, :ipvs, :zone, :helper, :name
]
def insert
PUPPETCODE
end
+ newproperty(:helper, required_features: :ct_target) do
+ desc <<-PUPPETCODE
+ Invoke the nf_conntrack_xxx helper module for this packet.
+ PUPPETCODE
+ end
+
autorequire(:firewallchain) do
reqs = []
protocol = nil
end
end
+ if value(:helper)
+ unless value(:jump).to_s == 'CT'
+ raise 'Parameter helper requires jump => CT'
+ end
+ end
+
if value(:jump).to_s == 'CT'
unless value(:table).to_s =~ %r{raw}
raise 'Parameter jump => CT only applies to table => raw'