/* icmp.h * * Copyright (c) 2019-2023 Apple Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * This code contains global declarations relating to ICMP I/O functions and data structures for the Thread border * router. */ struct icmp_listener { io_t *NULLABLE io_state; int sock; uint32_t unsolicited_interval; }; extern icmp_listener_t icmp_listener; void icmp_message_free(icmp_message_t *NONNULL message); void neighbor_solicit_send(interface_t *NONNULL interface, struct in6_addr *NONNULL destination); void icmp_message_dump(icmp_message_t *NONNULL message, struct in6_addr *NONNULL source_address, struct in6_addr *NONNULL destination_address); void set_router_mode(interface_t *NONNULL interface, int mode); void icmp_interface_subscribe(interface_t *NONNULL interface, bool added); bool start_icmp_listener(void); void neighbor_solicit_send(interface_t *NONNULL interface, struct in6_addr *NONNULL destination); void router_solicit_send(interface_t *NONNULL interface); void router_advertisement_send(interface_t *NONNULL interface, const struct in6_addr *NONNULL destination); // Local Variables: // mode: C // tab-width: 4 // c-file-style: "bsd" // c-basic-offset: 4 // fill-column: 120 // indent-tabs-mode: nil // End: