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
(cherry picked from commit 92920611c0c6cac0eb64587ee0a4bc17c253a120)
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());
     }