diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2016-06-02 23:39:10 +0200 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2016-06-02 23:39:10 +0200 |
commit | 41eaecd927452eda97875d388f12da2009d6a6cf (patch) | |
tree | 2f717e12fcf6562683a7815c84ea7caf339309ea /haircontrol | |
parent | 57be36071e3adcb8c7d59f096cfb82d2f47ce8c5 (diff) | |
download | haircontrol-41eaecd927452eda97875d388f12da2009d6a6cf.zip haircontrol-41eaecd927452eda97875d388f12da2009d6a6cf.tar.gz haircontrol-41eaecd927452eda97875d388f12da2009d6a6cf.tar.bz2 |
Make room for direct_neighbours, add inter.py for use in interactive python shell.
Diffstat (limited to 'haircontrol')
-rw-r--r-- | haircontrol/data.py | 5 | ||||
-rw-r--r-- | haircontrol/discovery.py | 28 |
2 files changed, 31 insertions, 2 deletions
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[<mgmt_ip>].ifaces[<ifname>].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************") + |