rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | /************************************************************************* |
| 2 | * |
| 3 | * Copyright 1993 Mentor Graphics Corporation |
| 4 | * All Rights Reserved. |
| 5 | * |
| 6 | * THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS |
| 7 | * THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS |
| 8 | * SUBJECT TO LICENSE TERMS. |
| 9 | * |
| 10 | *************************************************************************/ |
| 11 | |
| 12 | /************************************************************************ |
| 13 | * |
| 14 | * FILE NAME |
| 15 | * |
| 16 | * nal_public_apis.h |
| 17 | * |
| 18 | * COMPONENT |
| 19 | * |
| 20 | * nal APIs. |
| 21 | * |
| 22 | * DESCRIPTION |
| 23 | * |
| 24 | * Release nal interface to users. |
| 25 | * |
| 26 | * DATA STRUCTURES |
| 27 | * |
| 28 | * |
| 29 | * DEPENDENCIES |
| 30 | * |
| 31 | * nal_public_defs.h |
| 32 | * nal_general_types.h |
| 33 | * |
| 34 | *************************************************************************/ |
| 35 | |
| 36 | #ifndef NAL_PUBLIC_APIS_H |
| 37 | #define NAL_PUBLIC_APIS_H |
| 38 | |
| 39 | #include "kal_public_api.h" |
| 40 | #include "nal_general_types.h" |
| 41 | #include "nal_public_defs.h" |
| 42 | |
| 43 | nal_int nal_socket(nal_int16 family, nal_int16 type, nal_int16 protocol); |
| 44 | nal_status nal_bind(nal_int socketd, const nal_addr_struct* myaddr, nal_int16 addrlen); |
| 45 | nal_status nal_get_sock_name(nal_int socketd, nal_sockaddr_struct* localaddr, nal_int16* addrlen); |
| 46 | nal_status nal_connect(nal_int socketd, const nal_addr_struct* servaddr, nal_int16 addrlen); |
rjw | 8e44aab | 2022-11-30 16:42:16 +0800 | [diff] [blame] | 47 | nal_status nal_register_DL_filter(nal_int socketd , nal_uint8* remote_ip); |
rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 48 | nal_status nal_is_connected(nal_int socketd); |
| 49 | nal_int32 nal_send(nal_int socketd, const void* buff, nal_uint16 nbytes, nal_int16 flags); |
| 50 | nal_int32 nal_recv(nal_int socketd, void* buff, nal_uint16 nbytes, nal_int16 flags); |
| 51 | nal_int32 nal_send_to(nal_int socketd, const void* buff, nal_uint16 nbytes, nal_int16 flags, const nal_addr_struct* to, nal_int16 addr_len); |
| 52 | nal_int32 nal_recv_from(nal_int socketd, void* buff, nal_uint16 nbytes, nal_int16 flags, nal_addr_struct* from, nal_int16* addr_len); |
| 53 | nal_int32 nal_recv_with_info(nal_int socketd, void* buff, nal_uint16 nbytes, nal_int16 flags, nal_info_struct* info, nal_int16* info_len); |
| 54 | nal_int32 nal_sendmsg(nal_int socketd, const nal_msghdr* msg, nal_int16 flags); |
| 55 | nal_int32 nal_recvmsg(nal_int socketd, nal_msghdr* msg, nal_int16 flags); |
| 56 | nal_status nal_getsockopt(nal_int socketd, nal_int level, nal_int optname, void* optval, nal_int* optlen); |
| 57 | nal_status nal_setsockopt(nal_int socketd, nal_int level, nal_int optname, const void* optval, nal_int optlen); |
| 58 | |
| 59 | nal_status nal_listen(nal_int socketd, nal_uint16 backlog); |
| 60 | nal_status nal_accept(nal_int socketd, nal_addr_struct* peer, nal_int16* addrlen); |
| 61 | nal_status nal_shutdown(nal_int socketd, nal_int how); |
| 62 | nal_status nal_close_socket(nal_int socketd); |
| 63 | nal_status nal_close_socket_simple(nal_int socketd); |
| 64 | nal_status nal_fcntl(nal_int socketd, nal_int16 command, nal_int16 argument); |
| 65 | nal_int nal_fd_check(nal_int socketd, nal_fdset* fd); |
| 66 | void nal_fd_init(nal_fdset* fd); |
| 67 | void nal_fd_reset(nal_int socketd, nal_fdset* fd); |
| 68 | void nal_fd_set(nal_int socketd, nal_fdset* fd); |
| 69 | nal_status nal_select(nal_int max_sockets, nal_fdset* readfs, nal_fdset* writefs, nal_fdset* exceptfs, nal_unsigned timeout); |
| 70 | |
| 71 | /* NAL Socket Utilities */ |
| 72 | nal_status nal_inet_pton(nal_int family, const nal_char* src, void* dst); |
| 73 | nal_status nal_inet_ntop(nal_int family, const void* src, nal_char* dst, nal_int size); |
| 74 | nal_status nal_inet_ntop_zc(nal_int family, const void *src, nal_char *dst, nal_int size); |
| 75 | nal_uint16 nal_htons(nal_uint16 number); |
| 76 | nal_uint16 nal_ntohs(nal_uint16 number); |
| 77 | nal_uint32 nal_htonl(nal_uint32 number); |
| 78 | nal_uint32 nal_ntohl(nal_uint32 number); |
| 79 | |
| 80 | /* NAL 5-tuple Filter */ |
| 81 | nal_status nal_add_filter(nal_int socketd, nal_addr_struct* dest); |
| 82 | nal_status nal_add_gen_filter(nal_int protocol, nal_filter_info_t* info); |
| 83 | nal_status nal_delete_filter(nal_int socketd, nal_int filter_id); |
| 84 | nal_status nal_update_filter(nal_int socketd, nal_int filter_id, nal_addr_struct* dest); |
| 85 | |
| 86 | /* NAL Statistic for Filter */ |
| 87 | void nal_fil_dump_all(); |
| 88 | void nal_stat_dump_filter_list(nal_int socketd, void *filter_list); |
| 89 | |
| 90 | /* NAL tool */ |
| 91 | nal_status nal_tl_ping(nal_int socketd, nal_uint32 timeout, nal_addr_struct* from, nal_addr_struct* to, nal_uint32 stk_id, nal_uint32 stk_id_valid); |
| 92 | |
| 93 | nal_status nal_addr_ipv4to6_well_known_prefix(nal_uint8* output_ipv6, const nal_uint8* input_ipv4); |
| 94 | |
| 95 | /* NAL monitor */ |
| 96 | nal_status nal_monitor(nal_int socketd, nal_uint32 events, nal_uint32 timeout, module_type receiver_mod); |
| 97 | |
| 98 | /* NAL RSRA */ |
| 99 | nal_status nal_configure_ipv6_interface(const nal_uint32 dev_index, nal_int optname, const void* optval); |
| 100 | nal_status nal_setrsraopt(void* user_data, nal_int level, const void* param, nal_uint32 optlen); |
| 101 | |
yu.dong | e372c32 | 2023-08-30 20:25:04 -0700 | [diff] [blame] | 102 | kal_int32 nal_dns_get_md_dns_servers_list(kal_uint8 *dest, kal_int32 size, kal_int16 family, kal_uint32 stk_id); |
| 103 | |
rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 104 | #endif /* NAL_PUBLIC_APIS_H */ |