Bug 9022: ACL: Broadcast traffic is dropped in ACL tables
This fix enables ACL to permit Broadcast Traffic (Both IP and Non IP).
Related to IP Broadcast, Subnet-Directed Broadcast and All-Subnet
Broadcast traffic on the same network is being allowed subject to one of
the conditions specified below is met:
(a) The ports that want to communicate share the same
remote-secuirty-group
(b) The ports that want to communicate allow the other port's IP Address
in remote-ip-prefix
(c) The ports that want to communicate have securiyt0group with
remote-ip-prefix of 0.0.0.0/0.
IP Broadcast flows configured in VM Ingress ACL table (table 241) is as
below:
all-subnet flow:
cookie=0x6900000, duration=1463.293s, table=241, n_packets=0, n_bytes=0,
priority=61010,ip,dl_dst=ff:ff:ff:ff:ff:ff,nw_dst=255.255.255.255
actions=goto_table:242
subnet-directed flow:
cookie=0x6900000, duration=975.798s, table=241, n_packets=0, n_bytes=0,
priority=61010,ip,metadata=0x10000000000/0x1fffff0000000000,
dl_dst=ff:ff:ff:ff:ff:ff,nw_dst=10.1.1.255 actions=goto_table:242
Non IP Broadcast flows (with lower priority than other flows - 61005)
configured in VM Egress(211) and Ingress(241) tables is as below:
cookie=0x6900000, duration=30.298s, table=211, n_packets=0, n_bytes=0,
priority=61005,metadata=0x10000000000/0x1fffff0000000000,
dl_src=fa:16:3e:a9:4d:81 actions=resubmit(,17)
cookie=0x6900000, duration=901.855s, table=241, n_packets=0, n_bytes=0,
priority=61005,dl_dst=ff:ff:ff:ff:ff:ff actions=resubmit(,220)
Below are change details:
- Updated to add a flow to allow broadcast traffic with destination
adddress 255.255.255.255. Changes related to this are in
AclNodeListener.java
- Updated to add flows at port level for subnetwork's broadcast addresses
- Updated to add flows in 211/241 for Non-IP broadcast traffic
- Updated to add ARP/IP/IPv6 default drop flows with lower priority than
respective flows and higher priority than non-ip broadcast flow
- New yang definition introduced in ACL for higher modules (Neutron VPN
in our case) to pass broadcast CIDRs when ACL Interface is created
- NeutronVpn is updated to pass subnet CIDRs when ACL Interface is
created
Change-Id: I71c5040454b3c00af43dcef4f47b5979cd7cf3a5
Signed-off-by: Shashidhar Raja <shashidharr@altencalsoftlabs.com>
(cherry picked from commit
a6b0153d497356daa7a9f9ad91076374535a1d9a)