21 #define ANNOUNCE_WAIT 2 22 #define ANNOUNCE_NUM 2 23 #define ANNOUNCE_INTERVAL 2 24 #define MAX_CONFLICTS 10 25 #define RATE_LIMIT_INTERVAL 60 26 #define DEFEND_INTERVAL 10 28 #define BASE_AUTO_IP 0xA9FE0100 30 #define AUTO_IP_INIT 1 31 #define AUTO_IP_NEGOTIATING 2 32 #define AUTO_IP_CONFIGURED 3 33 #define AUTO_IP_STOPPED 4 34 #define AUTO_IP_STARTARP 5 35 #define AUTO_IP_ARPCHECKING 6 36 #define AUTO_IP_ANNOUNCING 7 37 #define AUTO_IP_CONFLICT 8 39 #define NOSCHEDULE_TICK 0 43 class AutoIPClient :
public TimeOutElement
50 unsigned long nextTick;
56 AutoIPClient *nextIPC;
58 void addressCollision();
59 IPADDR4 generateNewIPAddr();
64 void tickDelay(uint16_t delay);
66 virtual void TimeElementEvent();
69 AutoIPClient(InterfaceBlock *ib);
75 friend void processArp(PoolPtr p, PEFRAME pF);
77 void LinkNotify(
bool bLink);
80 AutoIPClient *AddAutoIPInterface(
int InterfaceNumber = 0);