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