| /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
| |
| #include "dhcp6-protocol.h" |
| #include "string-table.h" |
| |
| static const char * const dhcp6_state_table[_DHCP6_STATE_MAX] = { |
| [DHCP6_STATE_STOPPED] = "stopped", |
| [DHCP6_STATE_INFORMATION_REQUEST] = "information-request", |
| [DHCP6_STATE_SOLICITATION] = "solicitation", |
| [DHCP6_STATE_REQUEST] = "request", |
| [DHCP6_STATE_BOUND] = "bound", |
| [DHCP6_STATE_RENEW] = "renew", |
| [DHCP6_STATE_REBIND] = "rebind", |
| [DHCP6_STATE_STOPPING] = "stopping", |
| }; |
| |
| DEFINE_STRING_TABLE_LOOKUP_TO_STRING(dhcp6_state, DHCP6State); |
| |
| static const char * const dhcp6_message_type_table[_DHCP6_MESSAGE_TYPE_MAX] = { |
| [DHCP6_MESSAGE_SOLICIT] = "Solicit", |
| [DHCP6_MESSAGE_ADVERTISE] = "Advertise", |
| [DHCP6_MESSAGE_REQUEST] = "Request", |
| [DHCP6_MESSAGE_CONFIRM] = "Confirm", |
| [DHCP6_MESSAGE_RENEW] = "Renew", |
| [DHCP6_MESSAGE_REBIND] = "Rebind", |
| [DHCP6_MESSAGE_REPLY] = "Reply", |
| [DHCP6_MESSAGE_RELEASE] = "Release", |
| [DHCP6_MESSAGE_DECLINE] = "Decline", |
| [DHCP6_MESSAGE_RECONFIGURE] = "Reconfigure", |
| [DHCP6_MESSAGE_INFORMATION_REQUEST] = "Information Request", |
| [DHCP6_MESSAGE_RELAY_FORWARD] = "Relay Forward", |
| [DHCP6_MESSAGE_RELAY_REPLY] = "Relay Reply", |
| [DHCP6_MESSAGE_LEASE_QUERY] = "Lease Query", |
| [DHCP6_MESSAGE_LEASE_QUERY_REPLY] = "Lease Query Reply", |
| [DHCP6_MESSAGE_LEASE_QUERY_DONE] = "Lease Query Done", |
| [DHCP6_MESSAGE_LEASE_QUERY_DATA] = "Lease Query Data", |
| [DHCP6_MESSAGE_RECONFIGURE_REQUEST] = "Reconfigure Request", |
| [DHCP6_MESSAGE_RECONFIGURE_REPLY] = "Reconfigure Reply", |
| [DHCP6_MESSAGE_DHCPV4_QUERY] = "DHCPv4 Query", |
| [DHCP6_MESSAGE_DHCPV4_RESPONSE] = "DHCPv4 Response", |
| [DHCP6_MESSAGE_ACTIVE_LEASE_QUERY] = "Active Lease Query", |
| [DHCP6_MESSAGE_START_TLS] = "Start TLS", |
| [DHCP6_MESSAGE_BINDING_UPDATE] = "Binding Update", |
| [DHCP6_MESSAGE_BINDING_REPLY] = "Binding Reply", |
| [DHCP6_MESSAGE_POOL_REQUEST] = "Pool Request", |
| [DHCP6_MESSAGE_POOL_RESPONSE] = "Pool Response", |
| [DHCP6_MESSAGE_UPDATE_REQUEST] = "Update Request", |
| [DHCP6_MESSAGE_UPDATE_REQUEST_ALL] = "Update Request All", |
| [DHCP6_MESSAGE_UPDATE_DONE] = "Update Done", |
| [DHCP6_MESSAGE_CONNECT] = "Connect", |
| [DHCP6_MESSAGE_CONNECT_REPLY] = "Connect Reply", |
| [DHCP6_MESSAGE_DISCONNECT] = "Disconnect", |
| [DHCP6_MESSAGE_STATE] = "State", |
| [DHCP6_MESSAGE_CONTACT] = "Contact", |
| }; |
| |
| DEFINE_STRING_TABLE_LOOKUP(dhcp6_message_type, DHCP6MessageType); |
| |
| static const char * const dhcp6_message_status_table[_DHCP6_STATUS_MAX] = { |
| [DHCP6_STATUS_SUCCESS] = "Success", |
| [DHCP6_STATUS_UNSPEC_FAIL] = "Unspecified failure", |
| [DHCP6_STATUS_NO_ADDRS_AVAIL] = "No addresses available", |
| [DHCP6_STATUS_NO_BINDING] = "Binding unavailable", |
| [DHCP6_STATUS_NOT_ON_LINK] = "Not on link", |
| [DHCP6_STATUS_USE_MULTICAST] = "Use multicast", |
| [DHCP6_STATUS_NO_PREFIX_AVAIL] = "No prefix available", |
| [DHCP6_STATUS_UNKNOWN_QUERY_TYPE] = "Unknown query type", |
| [DHCP6_STATUS_MALFORMED_QUERY] = "Malformed query", |
| [DHCP6_STATUS_NOT_CONFIGURED] = "Not configured", |
| [DHCP6_STATUS_NOT_ALLOWED] = "Not allowed", |
| [DHCP6_STATUS_QUERY_TERMINATED] = "Query terminated", |
| [DHCP6_STATUS_DATA_MISSING] = "Data missing", |
| [DHCP6_STATUS_CATCHUP_COMPLETE] = "Catch up complete", |
| [DHCP6_STATUS_NOT_SUPPORTED] = "Not supported", |
| [DHCP6_STATUS_TLS_CONNECTION_REFUSED] = "TLS connection refused", |
| [DHCP6_STATUS_ADDRESS_IN_USE] = "Address in use", |
| [DHCP6_STATUS_CONFIGURATION_CONFLICT] = "Configuration conflict", |
| [DHCP6_STATUS_MISSING_BINDING_INFORMATION] = "Missing binding information", |
| [DHCP6_STATUS_OUTDATED_BINDING_INFORMATION] = "Outdated binding information", |
| [DHCP6_STATUS_SERVER_SHUTTING_DOWN] = "Server shutting down", |
| [DHCP6_STATUS_DNS_UPDATE_NOT_SUPPORTED] = "DNS update not supported", |
| [DHCP6_STATUS_EXCESSIVE_TIME_SKEW] = "Excessive time skew", |
| }; |
| |
| DEFINE_STRING_TABLE_LOOKUP(dhcp6_message_status, DHCP6Status); |
| |
| int dhcp6_message_status_to_errno(DHCP6Status s) { |
| switch (s) { |
| case DHCP6_STATUS_SUCCESS: |
| return 0; |
| case DHCP6_STATUS_NO_BINDING: |
| return -EADDRNOTAVAIL; |
| default: |
| return -EINVAL; |
| } |
| } |