pingping-lin | a2cbfad | 2013-03-07 08:39:21 +0800 | [diff] [blame] | 1 | package net.floodlightcontroller.bgproute; |
| 2 | |
| 3 | import org.slf4j.Logger; |
| 4 | import org.slf4j.LoggerFactory; |
| 5 | |
| 6 | public class PtreeNode { |
| 7 | public PtreeNode parent; |
| 8 | public PtreeNode left; |
| 9 | public PtreeNode right; |
| 10 | |
| 11 | public byte key[]; |
| 12 | public int keyBits; |
| 13 | |
| 14 | public int refCount; |
| 15 | |
| 16 | public Rib rib; |
| 17 | protected static Logger log = LoggerFactory.getLogger(BgpRoute.class); |
| 18 | |
| 19 | PtreeNode(byte [] key, int key_bits, int max_key_octet) { |
| 20 | parent = null; |
| 21 | left = null; |
| 22 | right = null; |
| 23 | refCount = 0; |
| 24 | rib = null; |
| 25 | this.key = new byte[max_key_octet]; |
| 26 | this.keyBits = key_bits; |
| 27 | log.debug("inside Ptreenode constructor key {} bits {}", key, key_bits); |
| 28 | |
| 29 | int octet = Ptree.bit_to_octet(key_bits); |
| 30 | for (int i = 0; i < max_key_octet; i++) { |
| 31 | if (i < octet) { |
| 32 | if (key != null) { |
| 33 | log.debug(octet + ": filling key[{}] {}", i, key[i]); |
| 34 | this.key[i] = key[i]; |
| 35 | } else { |
| 36 | log.debug("no filling, null key", i); |
| 37 | } |
| 38 | } else { |
| 39 | log.debug("filling key {} as 0", i); |
| 40 | this.key[i] = 0; |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | } |