+ private void createMulticastFlows(BigInteger dpId) {
+ createL2ControlProtocolDropFlows(dpId);
+ }
+
+ private void createL2ControlProtocolDropFlows(BigInteger dpId) {
+ List<MatchInfo> mkMatches = new ArrayList<>();
+ MatchEthernetDestination matchEthDst =
+ new MatchEthernetDestination(new MacAddress(ElanConstants.L2_CONTROL_PACKETS_DMAC),
+ new MacAddress(ElanConstants.L2_CONTROL_PACKETS_DMAC_MASK));
+
+ mkMatches.add(matchEthDst);
+
+ List<ActionInfo> listActionInfo = new ArrayList<>();
+ listActionInfo.add(new ActionDrop());
+
+ List<InstructionInfo> mkInstructions = new ArrayList<>();
+ mkInstructions.add(new InstructionApplyActions(listActionInfo));
+
+ String flowId = dpId.toString() + NwConstants.ELAN_DMAC_TABLE + "l2control"
+ + ElanConstants.L2_CONTROL_PACKETS_DMAC + ElanConstants.L2_CONTROL_PACKETS_DMAC_MASK;
+ FlowEntity flow = MDSALUtil.buildFlowEntity(dpId, NwConstants.ELAN_DMAC_TABLE, flowId, 15,
+ "L2 control packets dMac Table Flow", 0, 0, ElanConstants.COOKIE_ELAN_KNOWN_DMAC, mkMatches,
+ mkInstructions);
+
+ mdsalManager.installFlow(flow);
+ }
+