Fixed bug in Prefix which caused some updates not to be added to the PTrie, and reverted ProxyArp to broadcasting every received request
diff --git a/src/main/java/net/onrc/onos/ofcontroller/bgproute/Prefix.java b/src/main/java/net/onrc/onos/ofcontroller/bgproute/Prefix.java
index c40214b..21dd45c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/bgproute/Prefix.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/bgproute/Prefix.java
@@ -73,13 +73,12 @@
byte lastByte = address[lastByteIndex];
byte mask = 0;
- byte lsb = 1;
+ byte msb = (byte) 0x80;
int lastBit = (prefixLength - 1) % Byte.SIZE;
for (int i = 0; i < Byte.SIZE; i++) {
- if (i <= lastBit + 1) {
- mask |= lsb;
+ if (i <= lastBit) {
+ mask |= (msb >> i);
}
- mask <<= 1;
}
result[lastByteIndex] = (byte) (lastByte & mask);