mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
This serves as a regression test for commit a48df53e4249. Reviewed by: bz, allanjude MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Bell Tower Integration Differential Revision: https://reviews.freebsd.org/D46136 (cherry picked from commit feda329622bc77ab64ae5f0bf852743f4a037616)
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
#-
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
|
#
|
|
# Copyright (c) 2024 Klara, Inc.
|
|
#
|
|
|
|
import argparse
|
|
import scapy.all as sp
|
|
import sys
|
|
|
|
#
|
|
# Emit a router advertisement with the specified prefix.
|
|
#
|
|
def main():
|
|
parser = argparse.ArgumentParser("ra.py",
|
|
description="Emits Router Advertisement packets")
|
|
parser.add_argument('--sendif', nargs=1, required=True,
|
|
help='The interface through which the packet will be sent')
|
|
parser.add_argument('--src', nargs=1, required=True,
|
|
help='The source IP address')
|
|
parser.add_argument('--dst', nargs=1, required=True,
|
|
help='The destination IP address')
|
|
parser.add_argument('--prefix', nargs=1, required=True,
|
|
help='The prefix to be advertised')
|
|
parser.add_argument('--prefixlen', nargs=1, required=True, type=int,
|
|
help='The prefix length to be advertised')
|
|
|
|
args = parser.parse_args()
|
|
pkt = sp.Ether() / \
|
|
sp.IPv6(src=args.src, dst=args.dst) / \
|
|
sp.ICMPv6ND_RA(chlim=64) / \
|
|
sp.ICMPv6NDOptPrefixInfo(prefix=args.prefix, prefixlen=args.prefixlen)
|
|
|
|
sp.sendp(pkt, iface=args.sendif[0], verbose=False)
|
|
sys.exit(0)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|