Fixed bug due to wrong priority in BMv2.

In BMv2 0 is the highest priority, while it is the lowest for ONOS.

Change-Id: Iedb66598f293bf456cf4d206e19c0ff632edfd2c
diff --git a/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/translators/Bmv2DefaultFlowRuleTranslator.java b/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/translators/Bmv2DefaultFlowRuleTranslator.java
index 170e955..3fa7673 100644
--- a/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/translators/Bmv2DefaultFlowRuleTranslator.java
+++ b/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/translators/Bmv2DefaultFlowRuleTranslator.java
@@ -260,9 +260,12 @@
 
         Bmv2TableEntry.Builder tableEntryBuilder = Bmv2TableEntry.builder();
 
+        // In BMv2 0 is the highest priority, i.e. the opposite than ONOS.
+        int newPriority = Integer.MAX_VALUE - rule.priority();
+
         tableEntryBuilder
                 .withTableName(table.name())
-                .withPriority(rule.priority())
+                .withPriority(newPriority)
                 .withMatchKey(bmv2MatchKey)
                 .withAction(bmv2Action);
 
diff --git a/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java b/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java
index 2f19696..c602eea 100644
--- a/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java
+++ b/drivers/bmv2/src/test/java/org/onosproject/drivers/bmv2/Bmv2DefaultFlowRuleTranslatorTest.java
@@ -158,7 +158,7 @@
         assertThat("Incorrect ethType match param value",
                    ethTypeParam.value().asReadOnlyBuffer().getShort(), is(equalTo(ethType)));
         assertThat("Incorrect priority value",
-                   entry1.priority(), is(equalTo(rule1.priority())));
+                   entry1.priority(), is(equalTo(Integer.MAX_VALUE - rule1.priority())));
         assertThat("Incorrect timeout value",
                    entry1.timeout(), is(equalTo(expectedTimeout)));