Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netipsec/key_debug.c
Show First 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | |||||
static void kdebug_sadb_x_natt(struct sadb_ext *); | static void kdebug_sadb_x_natt(struct sadb_ext *); | ||||
#ifndef _KERNEL | #ifndef _KERNEL | ||||
#define panic(fmt, ...) { printf(fmt, ## __VA_ARGS__); exit(-1); } | #define panic(fmt, ...) { printf(fmt, ## __VA_ARGS__); exit(-1); } | ||||
#endif | #endif | ||||
/* NOTE: host byte order */ | /* NOTE: host byte order */ | ||||
const char* | |||||
kdebug_sadb_type(uint8_t type) | |||||
{ | |||||
#define SADB_NAME(n) case SADB_ ## n: return (#n) | |||||
switch (type) { | |||||
SADB_NAME(RESERVED); | |||||
SADB_NAME(GETSPI); | |||||
SADB_NAME(UPDATE); | |||||
SADB_NAME(ADD); | |||||
SADB_NAME(DELETE); | |||||
SADB_NAME(GET); | |||||
SADB_NAME(ACQUIRE); | |||||
SADB_NAME(REGISTER); | |||||
SADB_NAME(EXPIRE); | |||||
SADB_NAME(FLUSH); | |||||
SADB_NAME(DUMP); | |||||
SADB_NAME(X_PROMISC); | |||||
SADB_NAME(X_PCHANGE); | |||||
SADB_NAME(X_SPDUPDATE); | |||||
SADB_NAME(X_SPDADD); | |||||
SADB_NAME(X_SPDDELETE); | |||||
SADB_NAME(X_SPDGET); | |||||
SADB_NAME(X_SPDACQUIRE); | |||||
SADB_NAME(X_SPDDUMP); | |||||
SADB_NAME(X_SPDFLUSH); | |||||
SADB_NAME(X_SPDSETIDX); | |||||
SADB_NAME(X_SPDEXPIRE); | |||||
SADB_NAME(X_SPDDELETE2); | |||||
default: | |||||
return ("UNKNOWN"); | |||||
} | |||||
#undef SADB_NAME | |||||
} | |||||
const char* | |||||
kdebug_sadb_exttype(uint16_t type) | |||||
{ | |||||
#define EXT_NAME(n) case SADB_EXT_ ## n: return (#n) | |||||
#define X_NAME(n) case SADB_X_EXT_ ## n: return (#n) | |||||
switch (type) { | |||||
EXT_NAME(RESERVED); | |||||
EXT_NAME(SA); | |||||
EXT_NAME(LIFETIME_CURRENT); | |||||
EXT_NAME(LIFETIME_HARD); | |||||
EXT_NAME(LIFETIME_SOFT); | |||||
EXT_NAME(ADDRESS_SRC); | |||||
EXT_NAME(ADDRESS_DST); | |||||
EXT_NAME(ADDRESS_PROXY); | |||||
EXT_NAME(KEY_AUTH); | |||||
EXT_NAME(KEY_ENCRYPT); | |||||
EXT_NAME(IDENTITY_SRC); | |||||
EXT_NAME(IDENTITY_DST); | |||||
EXT_NAME(SENSITIVITY); | |||||
EXT_NAME(PROPOSAL); | |||||
EXT_NAME(SUPPORTED_AUTH); | |||||
EXT_NAME(SUPPORTED_ENCRYPT); | |||||
EXT_NAME(SPIRANGE); | |||||
X_NAME(KMPRIVATE); | |||||
X_NAME(POLICY); | |||||
X_NAME(SA2); | |||||
X_NAME(NAT_T_TYPE); | |||||
X_NAME(NAT_T_SPORT); | |||||
X_NAME(NAT_T_DPORT); | |||||
X_NAME(NAT_T_OAI); | |||||
X_NAME(NAT_T_OAR); | |||||
X_NAME(NAT_T_FRAG); | |||||
X_NAME(SA_REPLAY); | |||||
X_NAME(NEW_ADDRESS_SRC); | |||||
X_NAME(NEW_ADDRESS_DST); | |||||
default: | |||||
return ("UNKNOWN"); | |||||
}; | |||||
#undef EXT_NAME | |||||
#undef X_NAME | |||||
} | |||||
/* %%%: about struct sadb_msg */ | /* %%%: about struct sadb_msg */ | ||||
void | void | ||||
kdebug_sadb(struct sadb_msg *base) | kdebug_sadb(struct sadb_msg *base) | ||||
{ | { | ||||
struct sadb_ext *ext; | struct sadb_ext *ext; | ||||
int tlen, extlen; | int tlen, extlen; | ||||
/* sanity check */ | /* sanity check */ | ||||
if (base == NULL) | if (base == NULL) | ||||
panic("%s: NULL pointer was passed.\n", __func__); | panic("%s: NULL pointer was passed.\n", __func__); | ||||
printf("sadb_msg{ version=%u type=%u errno=%u satype=%u\n", | printf("sadb_msg{ version=%u type=%u(%s) errno=%u satype=%u\n", | ||||
base->sadb_msg_version, base->sadb_msg_type, | base->sadb_msg_version, base->sadb_msg_type, | ||||
kdebug_sadb_type(base->sadb_msg_type), | |||||
base->sadb_msg_errno, base->sadb_msg_satype); | base->sadb_msg_errno, base->sadb_msg_satype); | ||||
printf(" len=%u reserved=%u seq=%u pid=%u\n", | printf(" len=%u reserved=%u seq=%u pid=%u\n", | ||||
base->sadb_msg_len, base->sadb_msg_reserved, | base->sadb_msg_len, base->sadb_msg_reserved, | ||||
base->sadb_msg_seq, base->sadb_msg_pid); | base->sadb_msg_seq, base->sadb_msg_pid); | ||||
tlen = PFKEY_UNUNIT64(base->sadb_msg_len) - sizeof(struct sadb_msg); | tlen = PFKEY_UNUNIT64(base->sadb_msg_len) - sizeof(struct sadb_msg); | ||||
ext = (struct sadb_ext *)((caddr_t)base + sizeof(struct sadb_msg)); | ext = (struct sadb_ext *)((caddr_t)base + sizeof(struct sadb_msg)); | ||||
while (tlen > 0) { | while (tlen > 0) { | ||||
printf("sadb_ext{ len=%u type=%u }\n", | printf("sadb_ext{ len=%u type=%u(%s) }\n", | ||||
ext->sadb_ext_len, ext->sadb_ext_type); | ext->sadb_ext_len, ext->sadb_ext_type, | ||||
kdebug_sadb_exttype(ext->sadb_ext_type)); | |||||
if (ext->sadb_ext_len == 0) { | if (ext->sadb_ext_len == 0) { | ||||
printf("%s: invalid ext_len=0 was passed.\n", __func__); | printf("%s: invalid ext_len=0 was passed.\n", __func__); | ||||
return; | return; | ||||
} | } | ||||
if (ext->sadb_ext_len > tlen) { | if (ext->sadb_ext_len > tlen) { | ||||
printf("%s: ext_len too big (%u > %u).\n", | printf("%s: ext_len too big (%u > %u).\n", | ||||
__func__, ext->sadb_ext_len, tlen); | __func__, ext->sadb_ext_len, tlen); | ||||
▲ Show 20 Lines • Show All 849 Lines • Show Last 20 Lines |