SEBA-801 McastHandler of SegmentRouting app. does not install multicast
filtering objectives to a device that lacks mac configuration.
However, according to Opdpa2Pipeline, device mac is not mandatory to
create proper multicast filtering flows.

It seems device mac configuration should also not be mandated by
SR for multicast filtering flows.

Change-Id: I73c381a61bedaaf99cf0951d1e939048065843d2
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
index 52232b9..16f3b94 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
@@ -123,8 +123,8 @@
         try {
             routerMac = srManager.deviceConfiguration().getDeviceMac(deviceId);
         } catch (DeviceConfigNotFoundException dcnfe) {
-            log.warn("Fail to push filtering objective since device is not configured. Abort");
-            return MacAddress.NONE;
+            log.warn("Failed to get device MAC since the device {} is not configured", deviceId);
+            return null;
         }
         return routerMac;
     }
@@ -142,7 +142,8 @@
                            IpAddress mcastIp, McastRole mcastRole) {
 
         MacAddress routerMac = getRouterMac(deviceId, port);
-        if (routerMac.equals(MacAddress.NONE)) {
+
+        if (MacAddress.NONE.equals(routerMac)) {
             return;
         }
 
@@ -170,7 +171,8 @@
                               IpAddress mcastIp, McastRole mcastRole) {
 
         MacAddress routerMac = getRouterMac(deviceId, port);
-        if (routerMac.equals(MacAddress.NONE)) {
+
+        if (MacAddress.NONE.equals(routerMac)) {
             return;
         }
 
@@ -412,11 +414,14 @@
                                                                 MacAddress.IPV6_MULTICAST_MASK));
         }
         // We finally build the meta treatment
-        TrafficTreatment tt = DefaultTrafficTreatment.builder()
-                .pushVlan().setVlanId(assignedVlan)
-                .setEthDst(routerMac)
-                .build();
-        filtBuilder.withMeta(tt);
+        TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
+        tBuilder.pushVlan().setVlanId(assignedVlan);
+
+        if (routerMac != null && !routerMac.equals(MacAddress.NONE)) {
+            tBuilder.setEthDst(routerMac);
+        }
+
+        filtBuilder.withMeta(tBuilder.build());
         // Done, we return a permit filtering objective
         return filtBuilder.permit().fromApp(srManager.appId());
     }