%%%: about struct sadb_msg */
| 165 | |
| 166 | /* %%%: about struct sadb_msg */ |
| 167 | void |
| 168 | kdebug_sadb(struct sadb_msg *base) |
| 169 | { |
| 170 | struct sadb_ext *ext; |
| 171 | int tlen, extlen; |
| 172 | |
| 173 | /* sanity check */ |
| 174 | if (base == NULL) |
| 175 | panic("%s: NULL pointer was passed.\n", __func__); |
| 176 | |
| 177 | printf("sadb_msg{ version=%u type=%u(%s) errno=%u satype=%u\n", |
| 178 | base->sadb_msg_version, base->sadb_msg_type, |
| 179 | kdebug_sadb_type(base->sadb_msg_type), |
| 180 | base->sadb_msg_errno, base->sadb_msg_satype); |
| 181 | printf(" len=%u reserved=%u seq=%u pid=%u\n", |
| 182 | base->sadb_msg_len, base->sadb_msg_reserved, |
| 183 | base->sadb_msg_seq, base->sadb_msg_pid); |
| 184 | |
| 185 | tlen = PFKEY_UNUNIT64(base->sadb_msg_len) - sizeof(struct sadb_msg); |
| 186 | ext = (struct sadb_ext *)((caddr_t)base + sizeof(struct sadb_msg)); |
| 187 | |
| 188 | while (tlen > 0) { |
| 189 | printf("sadb_ext{ len=%u type=%u(%s) }\n", |
| 190 | ext->sadb_ext_len, ext->sadb_ext_type, |
| 191 | kdebug_sadb_exttype(ext->sadb_ext_type)); |
| 192 | |
| 193 | if (ext->sadb_ext_len == 0) { |
| 194 | printf("%s: invalid ext_len=0 was passed.\n", __func__); |
| 195 | return; |
| 196 | } |
| 197 | if (ext->sadb_ext_len > tlen) { |
| 198 | printf("%s: ext_len too big (%u > %u).\n", |
| 199 | __func__, ext->sadb_ext_len, tlen); |
| 200 | return; |
| 201 | } |
| 202 | |
| 203 | switch (ext->sadb_ext_type) { |
| 204 | case SADB_EXT_SA: |
| 205 | kdebug_sadb_sa(ext); |
| 206 | break; |
| 207 | case SADB_EXT_LIFETIME_CURRENT: |
| 208 | case SADB_EXT_LIFETIME_HARD: |
| 209 | case SADB_EXT_LIFETIME_SOFT: |
| 210 | kdebug_sadb_lifetime(ext); |
| 211 | break; |
| 212 | case SADB_EXT_ADDRESS_SRC: |
| 213 | case SADB_EXT_ADDRESS_DST: |
| 214 | case SADB_EXT_ADDRESS_PROXY: |
| 215 | case SADB_X_EXT_NAT_T_OAI: |
| 216 | case SADB_X_EXT_NAT_T_OAR: |
| 217 | case SADB_X_EXT_NEW_ADDRESS_SRC: |
| 218 | case SADB_X_EXT_NEW_ADDRESS_DST: |
| 219 | kdebug_sadb_address(ext); |
| 220 | break; |
| 221 | case SADB_EXT_KEY_AUTH: |
| 222 | case SADB_EXT_KEY_ENCRYPT: |
| 223 | kdebug_sadb_key(ext); |
| 224 | break; |
nothing calls this directly
no test coverage detected