/*
 * Options specific to setsockopt(SOL_IP).
 * Common {g,s}etsockopt(SOL_IP) options
 * should be in sockipoptions.in instead.
 */

ARPT_SO_SET_REPLACE
ARPT_SO_SET_ADD_COUNTERS

EBT_SO_SET_ENTRIES
EBT_SO_SET_COUNTERS

IP_VS_SO_SET_NONE
IP_VS_SO_SET_INSERT
IP_VS_SO_SET_ADD
IP_VS_SO_SET_EDIT
IP_VS_SO_SET_DEL
IP_VS_SO_SET_FLUSH
IP_VS_SO_SET_LIST
IP_VS_SO_SET_ADDDEST
IP_VS_SO_SET_DELDEST
IP_VS_SO_SET_EDITDEST
IP_VS_SO_SET_TIMEOUT
IP_VS_SO_SET_STARTDAEMON
IP_VS_SO_SET_STOPDAEMON
IP_VS_SO_SET_RESTORE
IP_VS_SO_SET_SAVE
IP_VS_SO_SET_ZERO

IPT_SO_SET_REPLACE
IPT_SO_SET_ADD_COUNTERS
