hm.. My problem here is that the switches don't have a ping capabilitie.. or am I wrong? I'm not sure I understand your answer, and that i was clear enough in my original mail.
Let's say my topology is the following: C > ___|___ > / \ > / \ > h1------p1:s1:p2-----p1:s2:p2--------h2 > > what i need, is to know the latency between s1 and s2. As the switches are dumb, I cannot simply ask them to ping each other, can I? I hope the question is clearer now, and I thank you for your answer. Regards, Walid van Boetzelaer 2011/12/19 Bob Lantz <rla...@cs.stanford.edu> > Since I don't have a switch which is capable of timestamping, I would > simply loop the packet back to the sender on a different interface: > > eth0 -> ingress switch ... egress switch -> eth1 > > This is a common approach - you don't need NOX or OpenFlow to do this, and > no time synchronization is required since there is a single clock. > > > On Dec 19, 2011, at 1:59 PM, Walid van Boetzelaer wrote: > > Hello, and thank you for your answer. > > I got this working and using send_stats_request was the way to go. I now > have something similar to an available bandwith (assuming speed is the > max_bandwidth, i do speed-link_utilization) > > I would like now to get the latency between two switches. I would be > curious to know what the best way to do this is. > My idea, though i can't figure out which commands to use, is the following: > have a switch send a packet to the neighbor switch, have it timestamp it, > send it back to the first switch, have it timestamp it, return it to the > controller, and from that, get the latency. > > If someone has thought of this already, could you point me to the > functions i should be using to get this working? > > Thank you in advance, > > Walid van Boetzelaer > > > > > > 2011/12/18 Murphy McCauley <jam...@nau.edu> > >> On Dec 18, 2011, at 11:52 AM, Walid van Boetzelaer wrote: >> >> > Openflow does maintain counters for each flow table, and these counters >> have the number of received packets per port, etc... How can I retrieve >> these? >> >> At the OpenFlow level, you do this by sending an ofp_port_stats_request >> asking for stats of type OFPST_PORT. You'll get back a response of >> ofp_port_stats which contains byte and packet counters for the port. >> >> The easiest way to do this from Python in NOX is using component's >> register_for_port_stats_in() to set a callback for port stats messages, and >> then using pycontext's send_port_stats_request() to send an actual request. >> (From inside your component, I think these are >> self.register_for_port_stats_in() and self.ctxt.send_port_stats_request().) >> >> Alternatively, the switchstats or monitoring components may do what you >> need. >> >> Hope that helps. >> >> -- Murphy > > > > Walid wrote: > >> Hi all! >> >> I need to calculate the bandwidth and latency between two switches. To >> achieve this, I plan to: >> >> C >> ___|___ >> / \ >> / \ >> h1------p1:s1:p2-----p1:s2:p2--------h2 >> -bandwidth: >> >> 1. stat0 = number of packets that went through s1_p1 and s2_port1 at >> time t1 >> >> >> 1. generate traffic from s1 to s2 >> >> >> 1. stat1 = number of packets that went through s1_p1 and s2_port1 at >> time t2 >> >> >> 1. bandwidth = (stat1-stat0)*size_of_packet/(t2-t1) >> >> -latency: >> >> 1. latency = send a packet from s1 to s2, check the timestamp at s1, >> s2, subtract them >> >> >> However, I am having trouble as to generating traffic. I checked the stats >> *variable* passed to the datapath_join events, and i get the following: >> I've been looking into these stats (and switchstats as well) for a while, >> because I believe they can help me retrieve the information I need. >> However, I am unsure as to what '*speed*' here means. Also, I can't see >> where the number of packets that traverse a port is. >> Openflow does maintain counters for each flow table, and these counters >> have the number of received packets per port, etc... How can I retrieve >> these? >> Thank you in advance! >> Best regards >> >> {'ports': [ >> >> {'hw_addr': 'b\x9e\x04\xb9h,', 'curr': 192, 'name': 's1-eth2', 'speed': >>> 10000, 'supported': 0, 'enabled': True, 'flood': True, 'state': 0, 'link': >>> True, 'advertised': 0, 'peer': 0, 'config': 0, 'port_no': 2}, {'hw_addr': >>> '\x00# \xba\xc0\x97', 'curr': 0, 'name': 'dp0', 'speed': 0, >>> 'supported': 0, 'enabled': False, 'flood': True, 'state': 1, 'link': False, >>> 'advertised': 0, 'peer': 0, 'config': 1, 'port_no': 65534}, {'hw_addr': >>> '\x9e\xe7\xf1\xcb\xdd\x17', 'curr': 192, 'name': 's1-eth1', 'speed': >>> 10000, 'supported': 0, 'enabled': True, 'flood': True, 'state': 0, 'link': >>> True, 'advertised': 0, 'peer': 0, 'config': 0, 'port_no': 1}], 'n_tables': >>> 2, 'n_bufs': 256L, 'actions': 4095L, 'caps': 135L} >> >> _______________________________________________ > nox-dev mailing list > nox-dev@noxrepo.org > http://noxrepo.org/mailman/listinfo/nox-dev > > >
_______________________________________________ nox-dev mailing list nox-dev@noxrepo.org http://noxrepo.org/mailman/listinfo/nox-dev