Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion network/vyos/scripts/um760_link_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,17 @@ def read_config_commands(self) -> str:
command = f"/bin/vbash -ic {shlex.quote('show configuration commands')}"
return self.run(command).stdout

def ensure_raw_chains(self) -> None:
command = (
"sudo nft list chain ip raw VYOS_TCP_MSS >/dev/null 2>&1 || "
"sudo nft 'add chain ip raw VYOS_TCP_MSS { type filter hook postrouting priority raw; policy accept; }'; "
"sudo nft list chain ip raw vyos_rpfilter >/dev/null 2>&1 || "
"sudo nft 'add chain ip raw vyos_rpfilter { type filter hook prerouting priority raw; policy accept; }'"
)
self.run(command)

def apply_config_commands(self, commands: list[str]) -> None:
self.ensure_raw_chains()
script = "\n".join(
[
"source /opt/vyatta/etc/functions/script-template",
Expand All @@ -100,7 +110,10 @@ def apply_config_commands(self, commands: list[str]) -> None:
"exit",
]
)
self.run("/bin/vbash -s", input_text=f"{script}\n")
result = self.run("/bin/vbash -s", input_text=f"{script}\n")
output = "\n".join(part for part in (result.stdout, result.stderr) if part)
if "Commit failed" in output:
raise RuntimeError(output.strip())


def bridge_members(config: str, bridge: str) -> list[str]:
Expand Down
Loading