VLANs cannot go on vpns, tunnels, wireless, etc. Start of help
This commit is contained in:
parent
14bcc075a3
commit
077560227a
@ -51,7 +51,7 @@ namespace EduNetworkBuilder
|
||||
None, DHCP, DHCPServer, Firewall, Gateway, Help, IPAddress, Link, Subnet, Ping,
|
||||
VPN, Hub, Switch, ARP, StaticRoute, Subnetting, WhenToSubnet, ComparingAddresses, MACAddress,
|
||||
Network, Packet, NIC, Interface, Router, PacketCorruption, GeneralWireless, WirelessSSID, WirelessKey,
|
||||
WirelessAP, WirelessRouter, WirelessRepeater, WirelessBridge
|
||||
WirelessAP, WirelessRouter, WirelessRepeater, WirelessBridge, VLAN
|
||||
}
|
||||
public enum PuzzleNames
|
||||
{
|
||||
|
@ -75,6 +75,17 @@ namespace EduNetworkBuilder
|
||||
public void SetVLANTag(int id, VLANTagType Tag)
|
||||
{
|
||||
bool foundit = false;
|
||||
Network theNet = NB.GetNetwork();
|
||||
NetworkDevice ND = theNet.GetDeviceFromID(AttachedToHostNic);
|
||||
NetworkCard NC = ND.NicFromID(AttachedToHostNic);
|
||||
NicType NT = NC.GetNicType;
|
||||
bool isPort = NT == NicType.port;
|
||||
|
||||
//Ports (switches) can have multiple tagged ports.
|
||||
//WAN, ETH0, etc, can only have one tagged or untagged per interface
|
||||
//nothing can have multiple untagged ports
|
||||
// If something is untagged, everything else is forbidden
|
||||
|
||||
foreach (VLANInfo one in VLANs)
|
||||
{
|
||||
if (one.ID == id)
|
||||
@ -84,8 +95,10 @@ namespace EduNetworkBuilder
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Tag == VLANTagType.Untagged && one.Tag == VLANTagType.Untagged)
|
||||
one.Tag = VLANTagType.Tagged;
|
||||
if (Tag == VLANTagType.Untagged)
|
||||
one.Tag = VLANTagType.Forbidden;
|
||||
if (Tag == VLANTagType.Tagged && !isPort) //Ports can have multiple tags on one interface
|
||||
one.Tag = VLANTagType.Forbidden;
|
||||
}
|
||||
}
|
||||
if (!foundit)
|
||||
|
@ -1529,4 +1529,12 @@
|
||||
<value>Packed forbidden to go out this port</value>
|
||||
<comment>NI_VLANOut = Packed forbidden to go out this port</comment>
|
||||
</data>
|
||||
<data name="H_VLAN_Key" xml:space="preserve">
|
||||
<value>VLANs:</value>
|
||||
<comment>Text from the help document that we jump to</comment>
|
||||
</data>
|
||||
<data name="H_VLAN_Title" xml:space="preserve">
|
||||
<value>VLANs</value>
|
||||
<comment>Text used in the program on buttons and the like</comment>
|
||||
</data>
|
||||
</root>
|
1
EduNetworkBuilder/VLANConfig.Designer.cs
generated
1
EduNetworkBuilder/VLANConfig.Designer.cs
generated
@ -50,6 +50,7 @@
|
||||
this.dgv_VLANAssignments.Size = new System.Drawing.Size(313, 195);
|
||||
this.dgv_VLANAssignments.TabIndex = 0;
|
||||
this.dgv_VLANAssignments.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_VLANAssignments_CellValueChanged);
|
||||
this.dgv_VLANAssignments.CurrentCellDirtyStateChanged += new System.EventHandler(this.dgv_VLANAssignments_CurrentCellDirtyStateChanged);
|
||||
//
|
||||
// dgv_VLANNames
|
||||
//
|
||||
|
@ -42,6 +42,13 @@ namespace EduNetworkBuilder
|
||||
processing = true;
|
||||
//Bind the vlan names
|
||||
Network theNet = NB.GetNetwork();
|
||||
int selectedrow = -1;
|
||||
int selectedcol = -1;
|
||||
if (dgv_VLANAssignments.CurrentCell != null)
|
||||
{
|
||||
selectedrow = dgv_VLANAssignments.CurrentCell.RowIndex;
|
||||
selectedcol = dgv_VLANAssignments.CurrentCell.ColumnIndex;
|
||||
}
|
||||
|
||||
//theNet.VlanNames.Sort((x, y) => x.ID.CompareTo(y.ID));
|
||||
List<VLANName> tList = theNet.VlanNames.OrderBy(x => x.ID).ToList();
|
||||
@ -65,6 +72,13 @@ namespace EduNetworkBuilder
|
||||
NetworkCard NIC = TheDevice.NicFromName(oneNic);
|
||||
if (NIC.GetNicType == NicType.lo) continue;
|
||||
if (NIC.GetNicType == NicType.management_interface) continue;
|
||||
if (NIC.GetNicType == NicType.wport) continue;
|
||||
if (NIC.GetNicType == NicType.wlan) continue;
|
||||
if (NIC.GetNicType == NicType.vpn) continue;
|
||||
if (NIC.GetNicType == NicType.none) continue;
|
||||
if (NIC.GetNicType == NicType.tun) continue;
|
||||
|
||||
|
||||
for (int i = 0; i < NIC.IFCount; i++)
|
||||
{
|
||||
NetworkInterface nif = NIC.GetInterface(i);
|
||||
@ -111,6 +125,9 @@ namespace EduNetworkBuilder
|
||||
int checksize = 50 + 120 + (many * 80) + 25; //the record indicator, and the size of the name. + width of each item
|
||||
if (Width < checksize) Width = checksize; //Make it fit better
|
||||
processing = false;
|
||||
|
||||
if (selectedcol >=0 && selectedcol < dgv_VLANAssignments.Columns.Count && selectedrow < dgv_VLANAssignments.Rows.Count)
|
||||
dgv_VLANAssignments.CurrentCell = dgv_VLANAssignments.Rows[selectedrow].Cells[selectedcol];
|
||||
}
|
||||
|
||||
bool NamesGridHasID(int id)
|
||||
@ -289,5 +306,14 @@ namespace EduNetworkBuilder
|
||||
SetIFVLAN(Which, ID, VTT);
|
||||
UpdateForm();
|
||||
}
|
||||
|
||||
private void dgv_VLANAssignments_CurrentCellDirtyStateChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (dgv_VLANAssignments.IsCurrentCellDirty)
|
||||
{
|
||||
// This fires the cell value changed handler below
|
||||
dgv_VLANAssignments.CommitEdit(DataGridViewDataErrorContexts.Commit);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user