mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
nwfilter: add support for RAPR protocol
This patch adds support for the RARP protocol. This may be needed due to qemu sending out a RARP packet (at least that's what it seems to want to do even though the protocol id is wrong) when migration finishes and we'd need a rule to let the packets pass. Unfortunately my installation of ebtables does not understand -p RARP and also seems to otherwise depend on strings in /etc/ethertype translated to protocol identifiers. Therefore I need to pass -p 0x8035 for RARP. To generally get rid of the dependency of that file I switch all so far supported protocols to use their protocol identifier in the -p parameter rather than the string. I am also extending the schema and added a test case. changes from v1 to v2: - added test case into patch
This commit is contained in:
33
tests/nwfilterxml2xmlin/rarp-test.xml
Normal file
33
tests/nwfilterxml2xmlin/rarp-test.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<filter name='testcase'>
|
||||
<uuid>5c6d49af-b071-6127-b4ec-6f8ed4b55335</uuid>
|
||||
<rule action='accept' direction='out'>
|
||||
<rarp srcmacaddr='1:2:3:4:5:6' srcmacmask='ff:ff:ff:ff:ff:ff'
|
||||
protocolid='rarp'
|
||||
dstmacaddr='aa:bb:cc:dd:ee:ff' dstmacmask='ff:ff:ff:ff:ff:ff'
|
||||
hwtype='12'
|
||||
protocoltype='34'
|
||||
opcode='Request'
|
||||
arpsrcmacaddr='1:2:3:4:5:6'
|
||||
arpdstmacaddr='a:b:c:d:e:f'/>
|
||||
</rule>
|
||||
|
||||
<rule action='accept' direction='out'>
|
||||
<rarp srcmacaddr='1:2:3:4:5:6' srcmacmask='ff:ff:ff:ff:ff:ff'
|
||||
opcode='1' hwtype='255' protocoltype='255'/>
|
||||
</rule>
|
||||
|
||||
<rule action='accept' direction='out'>
|
||||
<rarp srcmacaddr='1:2:3:4:5:6' srcmacmask='ff:ff:ff:ff:ff:ff'
|
||||
opcode='11' hwtype='256' protocoltype='256'/>
|
||||
</rule>
|
||||
|
||||
<rule action='accept' direction='out'>
|
||||
<rarp srcmacaddr='1:2:3:4:5:6' srcmacmask='ff:ff:ff:ff:ff:ff'
|
||||
opcode='65535' hwtype='65535' protocoltype='65535' />
|
||||
</rule>
|
||||
|
||||
<rule action='accept' direction='out'>
|
||||
<rarp srcmacaddr='1:2:3:4:5:6' srcmacmask='ff:ff:ff:ff:ff:ff'
|
||||
opcode='65536' hwtype='65536' protocoltype='65536' />
|
||||
</rule>
|
||||
</filter>
|
||||
18
tests/nwfilterxml2xmlout/rarp-test.xml
Normal file
18
tests/nwfilterxml2xmlout/rarp-test.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<filter name='testcase' chain='root'>
|
||||
<uuid>5c6d49af-b071-6127-b4ec-6f8ed4b55335</uuid>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<rarp srcmacaddr='01:02:03:04:05:06' srcmacmask='ff:ff:ff:ff:ff:ff' dstmacaddr='aa:bb:cc:dd:ee:ff' dstmacmask='ff:ff:ff:ff:ff:ff' hwtype='12' protocoltype='34' opcode='Request' arpsrcmacaddr='01:02:03:04:05:06' arpdstmacaddr='0a:0b:0c:0d:0e:0f'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<rarp srcmacaddr='01:02:03:04:05:06' srcmacmask='ff:ff:ff:ff:ff:ff' hwtype='255' protocoltype='255' opcode='Request'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<rarp srcmacaddr='01:02:03:04:05:06' srcmacmask='ff:ff:ff:ff:ff:ff' hwtype='256' protocoltype='256' opcode='11'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<rarp srcmacaddr='01:02:03:04:05:06' srcmacmask='ff:ff:ff:ff:ff:ff' hwtype='65535' protocoltype='65535' opcode='65535'/>
|
||||
</rule>
|
||||
<rule action='accept' direction='out' priority='500'>
|
||||
<rarp srcmacaddr='01:02:03:04:05:06' srcmacmask='ff:ff:ff:ff:ff:ff'/>
|
||||
</rule>
|
||||
</filter>
|
||||
@@ -90,6 +90,7 @@ mymain(int argc, char **argv)
|
||||
|
||||
DO_TEST("mac-test");
|
||||
DO_TEST("arp-test");
|
||||
DO_TEST("rarp-test");
|
||||
DO_TEST("ip-test");
|
||||
DO_TEST("ipv6-test");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user