blob: 4e2cfd0d61108ff69ce905d9af607071c67ddf7e [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*************************************************************************
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
43nal_int nal_socket(nal_int16 family, nal_int16 type, nal_int16 protocol);
44nal_status nal_bind(nal_int socketd, const nal_addr_struct* myaddr, nal_int16 addrlen);
45nal_status nal_get_sock_name(nal_int socketd, nal_sockaddr_struct* localaddr, nal_int16* addrlen);
46nal_status nal_connect(nal_int socketd, const nal_addr_struct* servaddr, nal_int16 addrlen);
rjw8e44aab2022-11-30 16:42:16 +080047nal_status nal_register_DL_filter(nal_int socketd , nal_uint8* remote_ip);
rjw6c1fd8f2022-11-30 14:33:01 +080048nal_status nal_is_connected(nal_int socketd);
49nal_int32 nal_send(nal_int socketd, const void* buff, nal_uint16 nbytes, nal_int16 flags);
50nal_int32 nal_recv(nal_int socketd, void* buff, nal_uint16 nbytes, nal_int16 flags);
51nal_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);
52nal_int32 nal_recv_from(nal_int socketd, void* buff, nal_uint16 nbytes, nal_int16 flags, nal_addr_struct* from, nal_int16* addr_len);
53nal_int32 nal_recv_with_info(nal_int socketd, void* buff, nal_uint16 nbytes, nal_int16 flags, nal_info_struct* info, nal_int16* info_len);
54nal_int32 nal_sendmsg(nal_int socketd, const nal_msghdr* msg, nal_int16 flags);
55nal_int32 nal_recvmsg(nal_int socketd, nal_msghdr* msg, nal_int16 flags);
56nal_status nal_getsockopt(nal_int socketd, nal_int level, nal_int optname, void* optval, nal_int* optlen);
57nal_status nal_setsockopt(nal_int socketd, nal_int level, nal_int optname, const void* optval, nal_int optlen);
58
59nal_status nal_listen(nal_int socketd, nal_uint16 backlog);
60nal_status nal_accept(nal_int socketd, nal_addr_struct* peer, nal_int16* addrlen);
61nal_status nal_shutdown(nal_int socketd, nal_int how);
62nal_status nal_close_socket(nal_int socketd);
63nal_status nal_close_socket_simple(nal_int socketd);
64nal_status nal_fcntl(nal_int socketd, nal_int16 command, nal_int16 argument);
65nal_int nal_fd_check(nal_int socketd, nal_fdset* fd);
66void nal_fd_init(nal_fdset* fd);
67void nal_fd_reset(nal_int socketd, nal_fdset* fd);
68void nal_fd_set(nal_int socketd, nal_fdset* fd);
69nal_status nal_select(nal_int max_sockets, nal_fdset* readfs, nal_fdset* writefs, nal_fdset* exceptfs, nal_unsigned timeout);
70
71/* NAL Socket Utilities */
72nal_status nal_inet_pton(nal_int family, const nal_char* src, void* dst);
73nal_status nal_inet_ntop(nal_int family, const void* src, nal_char* dst, nal_int size);
74nal_status nal_inet_ntop_zc(nal_int family, const void *src, nal_char *dst, nal_int size);
75nal_uint16 nal_htons(nal_uint16 number);
76nal_uint16 nal_ntohs(nal_uint16 number);
77nal_uint32 nal_htonl(nal_uint32 number);
78nal_uint32 nal_ntohl(nal_uint32 number);
79
80/* NAL 5-tuple Filter */
81nal_status nal_add_filter(nal_int socketd, nal_addr_struct* dest);
82nal_status nal_add_gen_filter(nal_int protocol, nal_filter_info_t* info);
83nal_status nal_delete_filter(nal_int socketd, nal_int filter_id);
84nal_status nal_update_filter(nal_int socketd, nal_int filter_id, nal_addr_struct* dest);
85
86/* NAL Statistic for Filter */
87void nal_fil_dump_all();
88void nal_stat_dump_filter_list(nal_int socketd, void *filter_list);
89
90/* NAL tool */
91nal_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
93nal_status nal_addr_ipv4to6_well_known_prefix(nal_uint8* output_ipv6, const nal_uint8* input_ipv4);
94
95/* NAL monitor */
96nal_status nal_monitor(nal_int socketd, nal_uint32 events, nal_uint32 timeout, module_type receiver_mod);
97
98/* NAL RSRA */
99nal_status nal_configure_ipv6_interface(const nal_uint32 dev_index, nal_int optname, const void* optval);
100nal_status nal_setrsraopt(void* user_data, nal_int level, const void* param, nal_uint32 optlen);
101
yu.donge372c322023-08-30 20:25:04 -0700102kal_int32 nal_dns_get_md_dns_servers_list(kal_uint8 *dest, kal_int32 size, kal_int16 family, kal_uint32 stk_id);
103
rjw6c1fd8f2022-11-30 14:33:01 +0800104#endif /* NAL_PUBLIC_APIS_H */