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