NetBurner 3.5.0
PDF Version
 
multihome.h
Go to the documentation of this file.
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
17#ifndef _NB_MULTI_IP_H
18#define _NB_MULTI_IP_H
19
20#include <netinterface.h>
21
22class MultiHomeInterface : public InterfaceBlock
23{
24 MultiHomeInterface *pNext;
25 static MultiHomeInterface *pHead; // Static list of interface
26 static bool bAfterConfig;
27 static void FixupMultiHomeConfigTree();
28
29 bool bConnected; // True if the interface is connneted
30 InterfaceBlock *pIfParent; // Pointer to the interface parent
31 NBString Connector;
32
33 virtual void send_func(PoolPtr poolPtr);
34 virtual void EnableMulticast(MACADR macAddress, BOOL addAddress);
35 virtual bool LinkActive();
36 virtual int LinkSpeed();
37 virtual bool LinkDuplex();
38 void CoreSetup(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, int VlanTag, bool bShowInConfig, bool bLetConfigModify);
39 void FixConfig();
40
41 public:
42 MultiHomeInterface(const char *name,
43 IPADDR4 addr,
44 IPADDR4 mask,
45 IPADDR4 gateway,
46 InterfaceBlock &parent,
47 int VlanTag = 0,
48 bool bShowInConfig = true,
49 bool bLetConfigModify = true);
50 MultiHomeInterface(const char *name,
51 IPADDR4 addr,
52 IPADDR4 mask,
53 IPADDR4 gateway,
54 const char *Parentname,
55 int VlanTag = 0,
56 bool bShowInConfig = true,
57 bool bLetConfigModify = true);
58 MultiHomeInterface(const char *name,
59 IPADDR4 addr,
60 IPADDR4 mask,
61 IPADDR4 gateway,
62 int ParentInterfaceNumber,
63 int VlanTag = 0,
64 bool bShowInConfig = true,
65 bool bLetConfigModify = true);
66 operator int() const { return my_ifnum; };
67 IPADDR4 IP() { return (IPADDR4)ip4.cur_addr.i4; };
68
69 friend void init();
70};
71
83int AddVlanInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, uint16_t vlan_tag, const char *ParentName);
84
96int AddVlanInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, uint16_t vlan_tag, InterfaceBlock &parent);
97
109int AddVlanInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, uint16_t vlan_tag, int root_if = 0);
110
121inline int AddInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, const char *ParentName)
122{
123 return AddVlanInterface(addr, mask, gateway, 0, ParentName);
124}
125
136inline int AddInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, InterfaceBlock &parent)
137{
138 return AddVlanInterface(addr, mask, gateway, 0, parent);
139}
140
151inline int AddInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, int root_if = 0)
152{
153 return AddVlanInterface(addr, mask, gateway, 0, root_if);
154}
155
156#endif
157
Used to store and manipulate IPv4 addresses in dual stack mode.
Definition nettypes.h:208
Network interface configuration block class for interface control and configuration.
Definition netinterface.h:245
Used to store and manipulate MAC addresses.
Definition nettypes.h:69
Lightweight alternative to C++ CString class.
Definition nbstring.h:118
int AddVlanInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, uint16_t vlan_tag, const char *ParentName)
Add a VLAN interface with a Parent Name.
int AddInterface(IPADDR4 addr, IPADDR4 mask, IPADDR4 gateway, const char *ParentName)
Add an interface with a Parent Name.
Definition multihome.h:121
NetBurner Network Interface Header File.