20:11:21 <colindixon> #startmeeting better host tracker interns 20:11:21 <odl_meetbot> Meeting started Fri Jun 27 20:11:21 2014 UTC. The chair is colindixon. Information about MeetBot at http://ci.openstack.org/meetbot.html. 20:11:21 <odl_meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:11:21 <odl_meetbot> The meeting name has been set to 'better_host_tracker_interns' 20:11:40 <colindixon> #link https://github.com/nilok/betterhosttracker evan made a pomfile and directory structure here 20:11:52 <colindixon> #info colindixon and evanz can compile it, djx seems to be having issues 20:12:37 <colindixon> what error are you getting djx 20:12:41 <djx> colindixon I can compile the ./betterhosttracker/opendaylight/md-sal/model/model-host/ directory 20:13:04 <djx> I can't compile the ./betterhosttracker directory nor ./betterhosttracker/opendaylight/md-sal/model/ 20:13:33 <colindixon> djx: ok, I see 20:13:38 <colindixon> evanz and ideas? 20:13:50 <evanz> the poms are essentially the ones from the old example with fixed version numbers 20:14:06 <evanz> so it's looking for it's children like model-flow-base and those things 20:14:22 <djx> colindixon you can't as well right? 20:14:25 <evanz> I will work on trimming them down to only what is essential to build 20:14:37 <colindixon> yeah, the root pom in betterhosttracker fails 20:14:50 <colindixon> maybe that would be good for djx to do just to get familiar with things? 20:15:06 <evanz> sure 20:15:21 <colindixon> or that they two of you could work through 20:15:24 <colindixon> I’m just thinking 20:15:47 <evanz> that sounds good 20:17:20 <djx> yang-to-sources: Unable to parse yang files from /home/aanm/NetBeansProjects/OpenDaylightInternship/betterhosttracker/opendaylight/md-sal/model/src/main/yang 20:17:32 <djx> java.io.FileNotFoundException: /home/aanm/NetBeansProjects/OpenDaylightInternship/betterhosttracker/opendaylight/md-sal/model/src/main/yang 20:17:49 <colindixon> so, let’s look at the pom file 20:18:07 <colindixon> there’s a line like this: <configuration> 20:18:08 <colindixon> <yangFilesRootDir>src/main/yang</yangFilesRootDir> 20:18:29 <colindixon> which probably needs to be changed 20:18:29 <evanz> which pom colindixon 20:18:34 <colindixon> top 20:18:37 <evanz> k 20:19:08 <colindixon> lets call them bht/pom model/pom and host/pom 20:19:13 <colindixon> this is bht/pom 20:19:16 <evanz> aye 20:19:31 <djx> shouldn't that be deleted? 20:20:25 <colindixon> or do we even need that pom file? 20:21:16 <evanz> I can build without it 20:21:17 <djx> why not? 20:21:29 <evanz> which it's just pulling it from the server I suppose 20:21:36 <evanz> if you don't have it 20:21:38 <djx> I think it would be cleaner to have a pom file on the root direcory 20:21:54 <evanz> right 20:22:34 <colindixon> I can’t build without the top level pom 20:23:04 <evanz> hm I had no issue 20:23:52 <colindixon> I can build host/pom w/o it 20:24:00 <colindixon> but not model/mom 20:24:04 <colindixon> model/pom 20:25:33 <evanz> okay 20:25:40 <evanz> model/pom doesn't build anyways 20:27:06 <djx> what we done then? 20:29:10 <djx> I've deleted the execution part 20:30:23 <colindixon> huh 20:30:25 <djx> what is the name of our bundle' 20:30:28 <djx> ? 20:30:34 <djx> hosttrackernewnew? 20:30:49 <colindixon> I can’t import the opendaylight/md-sal/model/model-host/pom.xml into eclipse at all 20:30:55 <colindixon> like it won’t even let me select it 20:32:00 <colindixon> http://colindixon.com/docs/import.png 20:35:11 <colindixon> any thoughts? 20:35:48 <evanz> so, problem being here that these poms are used to the context of being in md-sal/ 20:35:58 <evanz> so a question would be 20:36:04 <colindixon> #info it appears as though betterhosttracker/opendaylight/md-sal/model/model-host/pom.xml builds, but neither of betterhosttracker/opendaylight/md-sal/model/pom.xml or betterhosttracker/pom.xml build 20:36:09 <djx> colindixon I didn't have the same problem with netbeans 20:36:26 <evanz> is our host model going to live on md-sal/model or in a different bundle 20:36:38 <colindixon> #info betterhosttracker/opendaylight/md-sal/model/model-host/pom.xml won’t import as a project into eclipse 20:36:49 <colindixon> my guess is that we’d want to have it be a separate model 20:37:08 <colindixon> we might want to look at the ping example for how to do that 20:37:43 <colindixon> #info evanz says that the issue is that the current structure is just lifted from the md-sal, but with most of it’s dependencies removed 20:38:04 <djx> colindixon, this? https://wiki.opendaylight.org/view/Ping 20:38:14 <evanz> in that case we can strip these poms down to only the dependencies we need for our model 20:38:17 <colindixon> so, in all honesty, it’s nearly 5p on Friday for evanz and much later for djx 20:38:25 <colindixon> yeah 20:38:39 <evanz> and think of a different directory structure 20:38:53 <evanz> opendaylight/betterhosttracker/model/ 20:38:54 <colindixon> #action evanz and djx to strip down the poms so that what we have is a stand-alone bundle with the host model 20:38:55 <evanz> hows that? 20:39:25 <djx> opendaylight/betterhosttracker/model/ -> for models OK! 20:39:28 <colindixon> if you look at l2switch, they do l2switch/addresstracker/ 20:39:33 <djx> opendaylight/betterhosttracker/src/ -> for code, ok? 20:39:52 <colindixon> #info the l2switch project is probably a decent place to look for building our pom file structure 20:40:24 <colindixon> #info they have l2switch (repo name) -> address tracker -> model 20:40:25 <evanz> sounds good 20:40:53 <evanz> hey djx, shoot me an email with a time that you'd wanna work on this 20:41:03 <colindixon> so, yeah… if you guys have time this weekend, great 20:41:11 <colindixon> otherwise, we’ll pick it up on monday 20:41:20 <colindixon> do you guys want to meet at this time on Monday or Tuesday? 20:41:44 <evanz> either is fine by me 20:41:44 <djx> for me can be any time I'm done with exams 20:41:48 <colindixon> ok 20:41:51 <djx> only thesis now 20:42:44 <colindixon> #action evanz and djx to coordinate over the weekend to work on fixing the pom structure so we can import to eclipse/netbeans and start writing code 20:43:35 <colindixon> #info lets plan to meet on Tuesday at this time (3p central/4p eastern/9p lisbon) and hopefully we’ll have this worked out :-) 20:43:36 <djx> colindixon another thing, I take a look on InstanceIdentifierUtils of l2switch 20:43:48 <colindixon> djx: cool and? 20:43:59 <djx> they have the generateFlowTableInstanceIdentifier, right? 20:44:03 <djx> generateFlowTableInstanceIdentifier(final NodeConnectorRef nodeConnectorRef, final TableKey flowTableKey) 20:44:41 <colindixon> ok 20:45:02 <djx> you said in the last meeting 20:45:03 <djx> " that will show you how to query the MD-SAL for nodes with a certain augmentation (in that case it’s FlowCapableNode) in our case it will be AddressCapableNodeConnector I think" 20:45:22 <djx> why do we need to query for nodes with AddressCapableNodeConnector? 20:45:52 <colindixon> djx: because once you have those nodes, you can find the addresses from them 20:46:03 <colindixon> they’re the only place the addresses from l2switch will be stored 20:48:01 <djx> ok so they deal with all the packets and info 20:48:23 <djx> I thought we had to process all packetIN and that stuff 20:48:54 <colindixon> no, no 20:48:58 <colindixon> they’re going to do all of that 20:49:05 <colindixon> and just give us a list of addresses seen on each port 20:49:12 <colindixon> and we need to aggregate that into hosts 20:49:42 <djx> ohhh I need to shift all my thoughts about the pseudo-code I wrote in the last few days on my head 20:49:46 <colindixon> so, basically we’re going to get a Map<AddressCapableNodeConnector,List<List<Address>>> or something like that 20:50:19 <colindixon> and so if you see a packet with srcIP X and MAC Y on port p 20:50:30 <colindixon> and it was empty before 20:50:50 <djx> ok, but how often we will do that? 20:50:52 <colindixon> the map will look like { p => [ [IP X, MAC Y] ] } 20:51:10 <colindixon> and if we see another packet from IP Z, MAC W 20:51:32 <colindixon> it changes to { p => [ [IP X, MAC Y], [IP Z, MAC W] ] } 20:52:04 <colindixon> so they’re going to give us that list of packets seen on each port 20:52:08 <colindixon> and we need to chew on that 20:52:13 <colindixon> not packets 20:52:31 <colindixon> but “observations 20:52:48 <colindixon> does that make sense? 20:52:56 <djx> yes 20:53:01 <djx> but how often we will do that? 20:53:45 <colindixon> packet_in => l2switch => scrub addresses from packet => store addresses as observation off of the node connector => betterhosttracker => infer if this is a new host or an old host and update info 20:54:11 <colindixon> we’ll create a datachangelistener and process the changes as they come in I’d think 20:54:27 * colindixon will have to leave in a few minutes 20:55:00 <djx> ah! the "datachangetalker" (is it talker?) is created by the l2switch guys? 20:57:37 <djx> colindixon? 20:57:57 <colindixon> we’ll use a DataChangeListener to subscribe for changes to the AddressCapableFlowConnectors (or more likely the container with the addresses under that) 20:58:26 <colindixon> I think they use a DataChangeListener to find when new flowcapablenodes appear 20:58:39 <colindixon> DataChangeListener is a primitive provided by the MD-SAL 20:58:53 <colindixon> which basically lets you implement pub-sub 20:59:12 <colindixon> so, the l2switch is subscribing for FlowCapableNodes 20:59:20 <colindixon> and the openflowplugin publishes them 20:59:30 <colindixon> we’re going to subscribe for AddressCapableNodeConnectors 20:59:36 <colindixon> and the l2switch is going to publish them 20:59:43 <colindixon> and we’re going to publish Hosts 20:59:49 <colindixon> which others will be able to subscribe to 20:59:52 <colindixon> does that make sense? 21:00:10 <djx> yes, what happens when a new addresscapablenode appear? 21:02:07 <colindixon> that’s up to us to figure out 21:02:50 <djx> ok 21:02:50 <colindixon> my take is that we subscribe for new addresses under it (which we might be able to do directly without having to first do AddressCapableNodeConnectors) 21:03:08 <colindixon> and then we process them 21:03:22 <djx> we deal with that tuesday then 21:03:25 <colindixon> as though they were Entities in hosttracker_new, which they basically are 21:03:26 <colindixon> ok 21:03:29 <colindixon> sounds good 21:03:33 <colindixon> I’ll see you guys then 21:03:37 <colindixon> send emails over the weekend if you want 21:03:42 <colindixon> #endmeeting