From 41eaecd927452eda97875d388f12da2009d6a6cf Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Thu, 2 Jun 2016 23:39:10 +0200 Subject: Make room for direct_neighbours, add inter.py for use in interactive python shell. --- haircontrol/data.py | 5 +++-- haircontrol/discovery.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) (limited to 'haircontrol') diff --git a/haircontrol/data.py b/haircontrol/data.py index 2ab8268..1eb4d3b 100644 --- a/haircontrol/data.py +++ b/haircontrol/data.py @@ -60,8 +60,9 @@ class Interface: self.name = name self.mac = mac self.mac_seen = [] + self.direct_neighbours = [] def __repr__(self): - return repr( ( self.mac, self.name, self.mac_seen ) ) - #return repr( ( self.mac, self.name, '[ %i mac_seen ]'%len(self.mac_seen) ) ) + #return repr( ( self.mac, self.name, self.direct_neighbours, self.mac_seen ) ) + return repr( ( self.mac, self.name, self.direct_neighbours, '[ %i mac_seen ]'%len(self.mac_seen) ) ) diff --git a/haircontrol/discovery.py b/haircontrol/discovery.py index d6839b2..a9639be 100644 --- a/haircontrol/discovery.py +++ b/haircontrol/discovery.py @@ -179,3 +179,31 @@ class Discovery: print("Notice: Nothing inspected on %s"%e) i.disconnect() + def compute_neighbourhood(self): + print("**********compute_neighbourhood************") + # net.equipments[].ifaces[].mac_seen[i] + + # Fake algorithm + random_e = '172.16.0.254' + for (mgmt_ip,e) in self.net.equipments.items(): + for (ifname,i) in e.ifaces.items(): + last = None + for mac_seen in i.mac_seen: + last = mac_seen + if last and last in self.net.mac2ip: + random_e = self.net.mac2ip[last] + i.direct_neighbours.append(random_e) + +# for (mgmt_ip,e) in self.net.equipments.items(): +# print("%s (%s)"%(mgmt_ip,e.name)) +# for (ifname,i) in e.ifaces.items(): +# print("\t%s"%i.name) +# for mac_seen in i.mac_seen: +# print("\t\tseen %s"%mac_seen) +# for remote_mgmtip in i.direct_neighbours: +# e = self.net.equipments[remote_mgmtip] +# print("\t\tdirect_neighbour %s (%s)"%(remote_mgmtip, e.name)) + + + print("**********compute_neighbourhood************") + -- cgit v1.1