mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 05:51:15 +02:00
5 files changed
+67
-18
No files matched your search
@@ -605,13 +605,24 @@ class BaseNode:
|
||||
yield from self._ubridge_send('bridge reset_packet_filters ' + bridge_name)
|
||||
i = 0
|
||||
for (filter_type, values) in filters.items():
|
||||
cmd = "bridge add_packet_filter {bridge_name} {filter_name} {filter_type} {filter_value}".format(
|
||||
bridge_name=bridge_name,
|
||||
filter_name="filter" + str(i),
|
||||
filter_type=filter_type,
|
||||
filter_value=" ".join([str(v) for v in values]))
|
||||
yield from self._ubridge_send(cmd)
|
||||
i += 1
|
||||
if isinstance(values[0], str):
|
||||
for line in values[0].split('\n'):
|
||||
line = line.strip()
|
||||
cmd = "bridge add_packet_filter {bridge_name} {filter_name} {filter_type} {filter_value}".format(
|
||||
bridge_name=bridge_name,
|
||||
filter_name="filter" + str(i),
|
||||
filter_type=filter_type,
|
||||
filter_value='"{}" {}'.format(line, " ".join([str(v) for v in values[1:]]))).strip()
|
||||
yield from self._ubridge_send(cmd)
|
||||
i += 1
|
||||
else:
|
||||
cmd = "bridge add_packet_filter {bridge_name} {filter_name} {filter_type} {filter_value}".format(
|
||||
bridge_name=bridge_name,
|
||||
filter_name="filter" + str(i),
|
||||
filter_type=filter_type,
|
||||
filter_value=" ".join([str(v) for v in values]))
|
||||
yield from self._ubridge_send(cmd)
|
||||
i += 1
|
||||
|
||||
@asyncio.coroutine
|
||||
def _add_ubridge_ethernet_connection(self, bridge_name, ethernet_interface, block_host_traffic=True):
|
||||
|
||||
@@ -36,6 +36,7 @@ FILTERS = [
|
||||
"name": "Frequency",
|
||||
"minimum": -1,
|
||||
"maximum": 32767,
|
||||
"type": "int",
|
||||
"unit": "th packet"
|
||||
}
|
||||
]
|
||||
@@ -49,6 +50,7 @@ FILTERS = [
|
||||
"name": "Chance",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"type": "int",
|
||||
"unit": "%"
|
||||
}
|
||||
]
|
||||
@@ -62,13 +64,15 @@ FILTERS = [
|
||||
"name": "Latency",
|
||||
"minimum": 0,
|
||||
"maximum": 32767,
|
||||
"unit": "ms"
|
||||
"unit": "ms",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"name": "Jitter (-/+)",
|
||||
"minimum": 0,
|
||||
"maximum": 32767,
|
||||
"unit": "ms"
|
||||
"unit": "ms",
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -81,7 +85,19 @@ FILTERS = [
|
||||
"name": "Chance",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"unit": "%"
|
||||
"unit": "%",
|
||||
"type": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "bpf",
|
||||
"name": "BPF",
|
||||
"description": "Berkeley Packet Filter (BPF) syntax. This filter will drop any packet matching the expression. Put one filter by line",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "BPF filters",
|
||||
"type": "text"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -124,8 +140,14 @@ class Link:
|
||||
"""
|
||||
new_filters = {}
|
||||
for (filter, values) in filters.items():
|
||||
values = [int(v) for v in values]
|
||||
if len(values) != 0 and values[0] != 0:
|
||||
new_values = []
|
||||
for value in values:
|
||||
if isinstance(value, str):
|
||||
new_values.append(value.strip("\n "))
|
||||
else:
|
||||
new_values.append(int(value))
|
||||
values = new_values
|
||||
if len(values) != 0 and values[0] != 0 and values[0] != '':
|
||||
new_filters[filter] = values
|
||||
|
||||
if new_filters != self.filters:
|
||||
|
||||
Reference in new issue
Block a user