|
|
|
|
@ -66,41 +66,53 @@ struct DetectIpOpts_ {
|
|
|
|
|
const char *ipopt_name; /**< ip option name */
|
|
|
|
|
uint16_t code; /**< ip option flag value */
|
|
|
|
|
} ipopts[] = {
|
|
|
|
|
{
|
|
|
|
|
"ts",
|
|
|
|
|
IPV4_OPT_FLAG_TS,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"rr",
|
|
|
|
|
IPV4_OPT_FLAG_RR,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"lsrr",
|
|
|
|
|
IPV4_OPT_FLAG_LSRR,
|
|
|
|
|
"qs",
|
|
|
|
|
IPV4_OPT_FLAG_QS,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"eol",
|
|
|
|
|
IPV4_OPT_FLAG_EOL,
|
|
|
|
|
"sec",
|
|
|
|
|
IPV4_OPT_FLAG_SEC,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"nop",
|
|
|
|
|
IPV4_OPT_FLAG_NOP,
|
|
|
|
|
"lsrr",
|
|
|
|
|
IPV4_OPT_FLAG_LSRR,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"ts",
|
|
|
|
|
IPV4_OPT_FLAG_TS,
|
|
|
|
|
"esec",
|
|
|
|
|
IPV4_OPT_FLAG_ESEC,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"sec",
|
|
|
|
|
IPV4_OPT_FLAG_SEC,
|
|
|
|
|
"cipso",
|
|
|
|
|
IPV4_OPT_FLAG_CIPSO,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"esec",
|
|
|
|
|
IPV4_OPT_FLAG_ESEC,
|
|
|
|
|
"satid",
|
|
|
|
|
IPV4_OPT_FLAG_SID,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"ssrr",
|
|
|
|
|
IPV4_OPT_FLAG_SSRR,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"satid",
|
|
|
|
|
IPV4_OPT_FLAG_SID,
|
|
|
|
|
"rtralt",
|
|
|
|
|
IPV4_OPT_FLAG_RTRALT,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"eol",
|
|
|
|
|
IPV4_OPT_FLAG_EOL,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"nop",
|
|
|
|
|
IPV4_OPT_FLAG_NOP,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"any",
|
|
|
|
|
@ -117,24 +129,30 @@ struct DetectIpOpts_ {
|
|
|
|
|
const char *IpOptsFlagToString(uint16_t flag)
|
|
|
|
|
{
|
|
|
|
|
switch (flag) {
|
|
|
|
|
case IPV4_OPT_FLAG_RR:
|
|
|
|
|
return "rr";
|
|
|
|
|
case IPV4_OPT_FLAG_LSRR:
|
|
|
|
|
return "lsrr";
|
|
|
|
|
case IPV4_OPT_FLAG_EOL:
|
|
|
|
|
return "eol";
|
|
|
|
|
case IPV4_OPT_FLAG_NOP:
|
|
|
|
|
return "nop";
|
|
|
|
|
case IPV4_OPT_FLAG_TS:
|
|
|
|
|
return "ts";
|
|
|
|
|
case IPV4_OPT_FLAG_RR:
|
|
|
|
|
return "rr";
|
|
|
|
|
case IPV4_OPT_FLAG_QS:
|
|
|
|
|
return "qs";
|
|
|
|
|
case IPV4_OPT_FLAG_SEC:
|
|
|
|
|
return "sec";
|
|
|
|
|
case IPV4_OPT_FLAG_LSRR:
|
|
|
|
|
return "lsrr";
|
|
|
|
|
case IPV4_OPT_FLAG_ESEC:
|
|
|
|
|
return "esec";
|
|
|
|
|
case IPV4_OPT_FLAG_SSRR:
|
|
|
|
|
return "ssrr";
|
|
|
|
|
case IPV4_OPT_FLAG_CIPSO:
|
|
|
|
|
return "cipso";
|
|
|
|
|
case IPV4_OPT_FLAG_SID:
|
|
|
|
|
return "satid";
|
|
|
|
|
case IPV4_OPT_FLAG_SSRR:
|
|
|
|
|
return "ssrr";
|
|
|
|
|
case IPV4_OPT_FLAG_RTRALT:
|
|
|
|
|
return "rtralt";
|
|
|
|
|
case IPV4_OPT_FLAG_EOL:
|
|
|
|
|
return "eol";
|
|
|
|
|
case IPV4_OPT_FLAG_NOP:
|
|
|
|
|
return "nop";
|
|
|
|
|
case 0xffff:
|
|
|
|
|
return "any";
|
|
|
|
|
default:
|
|
|
|
|
|