blob: b5e47161c5f7659edcf6ba5813f8cf551ec36428 [file] [log] [blame]
Jonathan Hart382623d2014-04-03 09:48:11 -07001package net.onrc.onos.apps.bgproute;
pingping-lina2cbfad2013-03-07 08:39:21 +08002
3import org.slf4j.Logger;
4import org.slf4j.LoggerFactory;
5
6public class PtreeNode {
Ray Milkey269ffb92014-04-03 14:43:30 -07007 public PtreeNode parent;
8 public PtreeNode left;
9 public PtreeNode right;
10
Ray Milkey45614c52014-04-07 16:30:54 -070011 public byte[] key;
Ray Milkey269ffb92014-04-03 14:43:30 -070012 public int keyBits;
13
14 public int refCount;
15
16 public RibEntry rib;
Ray Milkeyec838942014-04-09 11:28:43 -070017 private static final Logger log = LoggerFactory.getLogger(BgpRoute.class);
Ray Milkey269ffb92014-04-03 14:43:30 -070018
Ray Milkey9526d6f2014-04-10 14:54:15 -070019 PtreeNode(byte[] key, int keyBits, int maxKeyOctet) {
Ray Milkey269ffb92014-04-03 14:43:30 -070020 parent = null;
21 left = null;
22 right = null;
23 refCount = 0;
24 rib = null;
Ray Milkey9526d6f2014-04-10 14:54:15 -070025 this.key = new byte[maxKeyOctet];
26 this.keyBits = keyBits;
27 log.debug("inside Ptreenode constructor key {} bits {}", key, keyBits);
Ray Milkey269ffb92014-04-03 14:43:30 -070028
Ray Milkey9526d6f2014-04-10 14:54:15 -070029 int octet = Ptree.bit_to_octet(keyBits);
30 for (int i = 0; i < maxKeyOctet; i++) {
Ray Milkey269ffb92014-04-03 14:43:30 -070031 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 }
pingping-lina2cbfad2013-03-07 08:39:21 +080044}