Fix delay latency minimum: ubridge rejects latency <= 0

Align validation rules with ubridge source: delay latency must be > 0
(packet_filter.c delay_setup line 182). Update FILTERS definition in
link.py and test cases accordingly.
This commit is contained in:
YueGuobin 2026-05-30 01:17:52 +08:00
parent 458eff6020
commit 0aa0467b02
No known key found for this signature in database
3 changed files with 10 additions and 6 deletions

View File

@ -48,7 +48,7 @@ FILTERS = [
"name": "Delay",
"description": "Delay packets in milliseconds. You can add jitter in milliseconds (+/-) of the delay",
"parameters": [
{"name": "Latency", "minimum": 0, "maximum": 32767, "unit": "ms", "type": "int"},
{"name": "Latency", "minimum": 1, "maximum": 32767, "unit": "ms", "type": "int"},
{"name": "Jitter (-/+)", "minimum": 0, "maximum": 32767, "unit": "ms", "type": "int"},
],
},

View File

@ -95,7 +95,7 @@ def validate_filter_parameters(filter_type: str, values: List[Any]) -> None:
},
"delay": {
"params_count": 2, # latency, jitter
"ranges": [(0, 32767), (0, 32767)],
"ranges": [(1, 32767), (0, 32767)], # ubridge rejects latency <= 0
"names": ["Latency", "Jitter"],
"units": ["ms", "ms"]
},

View File

@ -54,19 +54,23 @@ class TestPacketFilterValidation:
def test_delay_valid(self):
"""Test valid delay parameters."""
# Valid range: 0-32767ms
validate_filter_parameters("delay", [0, 0])
# Valid range: 1-32767ms latency, 0-32767ms jitter
validate_filter_parameters("delay", [1, 0])
validate_filter_parameters("delay", [100, 50])
validate_filter_parameters("delay", [32767, 32767])
def test_delay_invalid(self):
"""Test invalid delay parameters."""
# Zero latency (ubridge rejects latency <= 0)
with pytest.raises(FilterValidationError, match="between 1 and 32767"):
validate_filter_parameters("delay", [0, 0])
# Negative latency
with pytest.raises(FilterValidationError, match="between 0 and 32767"):
with pytest.raises(FilterValidationError, match="between 1 and 32767"):
validate_filter_parameters("delay", [-1, 0])
# Over max
with pytest.raises(FilterValidationError, match="between 0 and 32767"):
with pytest.raises(FilterValidationError, match="between 1 and 32767"):
validate_filter_parameters("delay", [32768, 0])
# Negative jitter