00001
00047 #ifndef IxEthDB_H
00048 #define IxEthDB_H
00049
00050 #include <IxOsBuffMgt.h>
00051 #include <IxTypes.h>
00052
00061 #define INLINE __inline__
00062
00063 #define IX_ETH_DB_PRIVATE PRIVATE
00064
00065 #define IX_ETH_DB_PUBLIC
00066
00070 #define IX_ETH_DB_PORT_ID_TO_NPE(id) (id + 1)
00071
00076 #define IX_ETH_DB_NPE_TO_PORT_ID(npe) (npe - 1)
00077
00082 #define IX_IEEE803_MAC_ADDRESS_SIZE (6)
00083
00088 typedef enum
00089 {
00090 IX_ETH_DB_SUCCESS = IX_SUCCESS,
00091 IX_ETH_DB_FAIL = IX_FAIL,
00092 IX_ETH_DB_INVALID_PORT,
00093 IX_ETH_DB_PORT_UNINITIALIZED,
00094 IX_ETH_DB_MAC_UNINITIALIZED,
00095 IX_ETH_DB_INVALID_ARG,
00096 IX_ETH_DB_NO_SUCH_ADDR,
00097 IX_ETH_DB_NOMEM,
00098 IX_ETH_DB_BUSY,
00099 IX_ETH_DB_END
00100 } IxEthDBStatus;
00101
00110 typedef struct
00111 {
00112 UINT8 macAddress[IX_IEEE803_MAC_ADDRESS_SIZE];
00113 } IxEthDBMacAddr;
00114
00120 typedef UINT32 IxEthDBPortId;
00121
00127 typedef UINT32 IxEthDBPortMap;
00128
00139 IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBInit(void);
00140
00159 IX_ETH_DB_PUBLIC void ixEthDBPortInit(IxEthDBPortId portID);
00160
00188 IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBPortEnable(IxEthDBPortId portID);
00189
00219 IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBPortDisable(IxEthDBPortId portID);
00220
00241 IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBPortAddressSet(IxEthDBPortId portID, IxEthDBMacAddr *macAddr);
00242
00268 IxEthDBStatus ixEthDBFilteringPortMaximumFrameSizeSet(IxEthDBPortId portID, UINT32 maximumFrameSize);
00269
00292 IxEthDBStatus ixEthDBFilteringStaticEntryProvision(IxEthDBPortId portID, IxEthDBMacAddr *macAddr);
00293
00317 IxEthDBStatus ixEthDBFilteringDynamicEntryProvision(IxEthDBPortId portID, IxEthDBMacAddr *macAddr);
00318
00334 IxEthDBStatus ixEthDBFilteringEntryDelete(IxEthDBMacAddr *macAddr);
00335
00357 IxEthDBStatus ixEthDBFilteringPortSearch(IxEthDBPortId portID, IxEthDBMacAddr *macAddr);
00358
00379 IxEthDBStatus ixEthDBFilteringDatabaseSearch(IxEthDBPortId *portID, IxEthDBMacAddr *macAddr);
00380
00399 IxEthDBStatus ixEthDBFilteringPortUpdatingSearch(IxEthDBPortId *portID, IxEthDBMacAddr *macAddr);
00400
00410 #define IX_ETH_DB_MAINTENANCE_TIME (1 * 60)
00411
00421 #define IX_ETH_DB_LEARNING_ENTRY_AGE_TIME (15 * 60 )
00422
00439 IxEthDBStatus ixEthDBPortAgingDisable(IxEthDBPortId port);
00440
00462 IxEthDBStatus ixEthDBPortAgingEnable(IxEthDBPortId portID);
00463
00480 void ixEthDBDatabaseMaintenance(void);
00481
00501 IxEthDBStatus ixEthDBFilteringDatabaseShow(IxEthDBPortId portID);
00502
00516 void ixEthDBFilteringDatabaseShowAll(void);
00517
00522 #endif