1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     nsoc_entry.h
4   Copyright (C)2010 Nintendo Co., Ltd.  All rights reserved.
5   These coded instructions, statements, and computer programs contain
6   proprietary information of Nintendo of America Inc. and/or Nintendo
7   Company Ltd., and are protected by Federal copyright law. They may
8   not be disclosed to third parties or copied or duplicated in any form,
9   in whole or in part, without the prior written consent of Nintendo.
10   $Rev: 27829 $
11  *---------------------------------------------------------------------------
12 
13 
14 */
15 
16 /* Please see man pages for details
17 
18 
19  */
20 
21 #ifndef __NSOC_ENTRY_H__
22 #define __NSOC_ENTRY_H__
23 
24 #include <nn/net/compatible/nsoc/nsoc_user.h>	/* for NSOC_IP_ALEN, NSOC_ETH_ALEN */
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 enum NSOCARPState {
31 	NSOC_ARP_STATE_INCOMPLETE              = 1, /* Please see man pages for details */
32 	NSOC_ARP_STATE_REACHABLE               = 2, /* Please see man pages for details */
33 	NSOC_ARP_STATE_PROBE                   = 3  /* Please see man pages for details */
34 };
35 
36 /* Please see man pages for details
37 
38  */
39 typedef struct NSOCARPEntry
40 {
41     int             state;                      /* Please see man pages for details */
42     u8              prAddr[NSOC_IP_ALEN];       /* Please see man pages for details */
43     u8              hwAddr[NSOC_ETH_ALEN];      /* Please see man pages for details */
44 } NSOCARPEntry;
45 
46 
47 /* Please see man pages for details
48 
49  */
50 typedef struct NSOCIPAddrEntry
51 {
52     u8              addr[NSOC_IP_ALEN];         /* Please see man pages for details */
53     u8              netMask[NSOC_IP_ALEN];      /* Please see man pages for details */
54     u8              bcastAddr[NSOC_IP_ALEN];    /* Please see man pages for details */
55 } NSOCIPAddrEntry;
56 
57 enum NSOCIPRouteFlag {
58 	NSOC_IP_ROUTE_FLAG_G                   = 0x01,    /* Please see man pages for details */
59 	NSOC_IP_ROUTE_FLAG_D                   = 0x02,    /* Please see man pages for details */
60 	NSOC_IP_ROUTE_FLAG_M                   = 0x04     /* Please see man pages for details */
61 };
62 
63 /* Please see man pages for details
64 
65  */
66 typedef struct NSOCIPRouteEntry
67 {
68     u8           dst[NSOC_IP_ALEN];          /* Please see man pages for details */
69     u8           netmask[NSOC_IP_ALEN];      /* Please see man pages for details */
70     u8           gateway[NSOC_IP_ALEN];      /* Please see man pages for details */
71     u32          flag;                       /* Please see man pages for details */
72     NOSTick      time;                       /* Please see man pages for details */
73 } NSOCIPRouteEntry;
74 
75 #ifdef NSOC_IP6_ENABLE
76 /* Please see man pages for details
77 
78  */
79 typedef struct NSOCIP6RouteEntry
80 {
81     u8              prefix[NSOC_IP6_ALEN];      /* Please see man pages for details */
82     u32             prefixLen;                  /* Please see man pages for details */
83     u32             flag;                       /* Please see man pages for details */
84     u32             expireTime;                 /* Please see man pages for details */
85 } NSOCIP6RouteEntry;
86 
87 /* Please see man pages for details
88 
89 
90  */
91 typedef struct NSOCIP6MyAddrEntry
92 {
93     u8              addr[NSOC_IP6_ALEN];    /* Please see man pages for details */
94     u32             preferredTime;          /* Please see man pages for details */
95     u32             validTime;              /* Please see man pages for details */
96     u32             state;                  /* Please see man pages for details */
97     BOOL            anycast;                /* Please see man pages for details */
98 } NSOCIP6MyAddrEntry;
99 
100 /* Please see man pages for details
101 
102 
103  */
104 typedef struct NSOCIP6PrefixEntry
105 {
106     u8              prefix[NSOC_IP6_ALEN];  /* Please see man pages for details */
107     u32             prefixLen;              /* Please see man pages for details */
108     u32             preferredTime;          /* Please see man pages for details */
109     u32             validTime;              /* Please see man pages for details */
110     u8              flags;                  /* Please see man pages for details */
111 } NSOCIP6PrefixEntry;
112 
113 /* Please see man pages for details
114 
115 
116  */
117 typedef struct NSOCIP6NeighborCacheEntry
118 {
119     u8              addr[NSOC_IP6_ALEN];    /* Please see man pages for details */
120     u32             state;                  /* Please see man pages for details */
121     BOOL            isRouter;               /* Please see man pages for details */
122 } NSOCIP6NeighborCacheEntry;
123 
124 /* Please see man pages for details
125 
126 
127  */
128 typedef struct NSOCIP6DestinationCacheEntry
129 {
130     u8              dst[NSOC_IP6_ALEN];     /* Please see man pages for details */
131     u8              nextHop[NSOC_IP6_ALEN]; /* Please see man pages for details */
132     u32             pmtu;                   /* Please see man pages for details */
133 } NSOCIP6DestinationCacheEntry;
134 
135 /* Please see man pages for details
136 
137 
138  */
139 typedef struct NSOCIP6DefaultRouterEntry
140 {
141     u8              addr[NSOC_IP6_ALEN];     /* Please see man pages for details */
142 } NSOCIP6DefaultRouterEntry;
143 
144 #endif /* NSOC_IP6_ENABLE */
145 
146 /* Please see man pages for details
147 
148  */
149 typedef struct NSOCUDPEntry
150 {
151     NSOCSockAddrStorage    local;         /* Please see man pages for details */
152     NSOCSockAddrStorage    remote;        /* Please see man pages for details */
153 } NSOCUDPEntry;
154 
155 
156 #define NSOC_TCP_STATE_CLOSED        1    /* Please see man pages for details */
157 #define NSOC_TCP_STATE_LISTEN        2    /* Please see man pages for details */
158 #define NSOC_TCP_STATE_SYN_SENT      3    /* Please see man pages for details */
159 #define NSOC_TCP_STATE_SYN_RECEIVED  4    /* Please see man pages for details */
160 #define NSOC_TCP_STATE_ESTABLISHED   5    /* Please see man pages for details */
161 #define NSOC_TCP_STATE_FINWAIT1      6    /* Please see man pages for details */
162 #define NSOC_TCP_STATE_FINWAIT2      7    /* Please see man pages for details */
163 #define NSOC_TCP_STATE_CLOSE_WAIT    8    /* Please see man pages for details */
164 #define NSOC_TCP_STATE_LAST_ACK      9    /* Please see man pages for details */
165 #define NSOC_TCP_STATE_CLOSING       10   /* Please see man pages for details */
166 #define NSOC_TCP_STATE_TIME_WAIT     11   /* Please see man pages for details */
167 
168 /* Please see man pages for details
169 
170  */
171 typedef struct NSOCTCPEntry
172 {
173     s32                    state;         /* Please see man pages for details */
174     NSOCSockAddrStorage    local;         /* Please see man pages for details */
175     NSOCSockAddrStorage    remote;        /* Please see man pages for details */
176 } NSOCTCPEntry;
177 
178 #ifdef __cplusplus
179 }
180 #endif
181 
182 #endif  /* __NSOC_ENTRY_H__ */
183