Date   

Re: [yangtools-dev] Anyxml in yang model

Y. Richard Yang
 

Hi Tony,

We are going down the path of trying augment (based on the cost-mode: numerical vs ordinal vs path-vector vs calendar vs policy). We will keep you updated. If you have new suggestions, please let the alto-dev people know as well--we are still new to this.

Thanks!

Richard

On Wed, Apr 15, 2015 at 12:04 PM, Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco) <ttkacik@...> wrote:

Hi, still trying to figure out other possibilites for you how to model cost-maps and do not loose exact type information.

 

Tony

 

From: wangxin [mailto:xinwang2014@...]
Sent: Tuesday, April 14, 2015 2:21 PM
To: Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco); Robert Varga -X (rovarga - Pantheon Technologies SRO at Cisco); yangtools-dev@...
Cc: alto-dev@...
Subject: Re: [yangtools-dev] Anyxml in yang model

 

Thanks for your information about DOM APIs, and i am looking into it. If we decide to use it, we need to change a lot of things like data broker, transaction and data change listener. Is this right? And actually there is only one data in alto yang model using anyxml, which is cost in cost-map.

 

Thanks again,

Xin

 

发自 Windows 邮件

 

发件人: Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco)
发送时间: ‎2015‎414, 星期二 16:02
收件人: xin wang, rovarga@..., yangtools-dev@...
抄送: alto-dev@...

 

Hi,

We do not support anyxml in currently generated DTOs, but DOM data and DOM broker support it using different

APIs (called DOM APIs).

 

Which type of data from alto specification do you want to model as anyxml?

 

 

Tony

 

From: yangtools-dev-bounces@... [mailto:yangtools-dev-bounces@...] On Behalf Of wangxin
Sent: Monday, April 13, 2015 6:37 PM
To: Robert Varga -X (rovarga - Pantheon Technologies SRO at Cisco); yangtools-dev@...
Cc: alto-dev@...
Subject: [yangtools-dev] Anyxml in yang model

 

Dear Varga and others in yangtools,

 

I am working at implementing alto in odl and i use anyxml to define some data in yang model considering the data could be an object, array, string, etc. But i find that there is no method to set its value in the class generated by using yang tools, also there is no field of the data in the class. There is no error when generating the code. It looks like it just skips the anyxml defined data. Did i miss something to make it work? Or it doesn’t support anyxml for now?

 

Thanks,

Xin

 

发自 Windows 邮件

 


_______________________________________________
alto-dev mailing list
alto-dev@...
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.opendaylight.org_mailman_listinfo_alto-2Ddev&d=AwICAg&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=4G36iiEVb2m_v-0RnP2gx9KZJjYQgfvrOCE3789JGIA&m=gfMl2yBw4JbwJoEgmcSZTmApIwRrkuZ0NdKr8aUlcaA&s=kO12hE8x_19dUP6Hha2yzYdrrHFC7qRpTjcolf2uBFQ&e=


Re: Some questions about deleting data by alto-manager

Y. Richard Yang
 

Hi Xin,

Good discussion. Suppose the admin issues alto:delete (btw, I found the verb destroy too violent, so I, as you, will use delete). I assume that then the network will disappear. This means that it should not appear either in northbound or restconf (deleted from data store). Following the principle of minimal amount of work, then your bundle should deregister from all events and stop running. We do not have a restart command yet---we have not designed the whole life cycle thing yet. So the state machine, at this point is:

event: feature:install -> state: running
event: alto:delete hostrackermap -> state: stopped

There is no transition to resurrect it, unless we want to conduct a more complete lifecycle design. 

The outcome of the admin issues feature:install again at the stopped state is not defined.

Agree?

Richard

On Wed, Apr 15, 2015 at 11:15 AM, wangxin <xinwang2014@...> wrote:
Hi Richard,

I didn’t understand if alto-manager deletes alto-hosttracker-generated data (i think delete is only action it can do), how alto-hosttracker reacts?

  1. it stops listening to l2switch and waits for alto-manager’s next command (like restart)?
  2. it continues listening to l2switch and just adds new data to data store? (it’s like option 1’s restart, but it keeps history data about existing hosts)
  3. some other choices?

Thanks,
Xin


Re: Some questions about deleting data by alto-manager

xinwang
 

I agree that when alto-manager send a delete command, the corresponding bundle should stop running. Then we should decide how alto-manager send a alto:delete event? I don't think just delete the data like network-map is a good choice. If there are data deleted from the data store means the corresponding bundle should stop, then it looks like i write data to it and also i listen data change from the same place. I prefer some configurational data that apart from resources data in alto. Then alto-hosttracker can listen to the data and stop running when it changes.

Xin


Date: Thu, 16 Apr 2015 15:59:26 -0400
Subject: Re: Some questions about deleting data by alto-manager
From: yry@...
To: xinwang2014@...
CC: alto-dev@...

Hi Xin,

Good discussion. Suppose the admin issues alto:delete (btw, I found the verb destroy too violent, so I, as you, will use delete). I assume that then the network will disappear. This means that it should not appear either in northbound or restconf (deleted from data store). Following the principle of minimal amount of work, then your bundle should deregister from all events and stop running. We do not have a restart command yet---we have not designed the whole life cycle thing yet. So the state machine, at this point is:

event: feature:install -> state: running
event: alto:delete hostrackermap -> state: stopped

There is no transition to resurrect it, unless we want to conduct a more complete lifecycle design. 

The outcome of the admin issues feature:install again at the stopped state is not defined.

Agree?

Richard

On Wed, Apr 15, 2015 at 11:15 AM, wangxin <xinwang2014@...> wrote:
Hi Richard,

I didn’t understand if alto-manager deletes alto-hosttracker-generated data (i think delete is only action it can do), how alto-hosttracker reacts?

  1. it stops listening to l2switch and waits for alto-manager’s next command (like restart)?
  2. it continues listening to l2switch and just adds new data to data store? (it’s like option 1’s restart, but it keeps history data about existing hosts)
  3. some other choices?

Thanks,
Xin


Planning for next week

Y. Richard Yang
 

Dear team,

As much as I do not want to push for work items Friday evening/Saturday morning, we need to plan a bit for the next week. In particular, there is the ODL training for the whole week next week, which means that Kai and Wang Xi will be busy learning more on ODL. This is great for the long term. Here is more proposal for next week:

1. Basic goal: finish T1 to T6 (see slack test channel).

2. Start to conduct code review (both Wendy and I are eager to read the design). 

3. Start to systematically add unit and system tests

4. Start to plan to add new things:
   Topology (path vector)
   Demonstrate the use with an ALTO client: in particular GridFTP, or MapReduce (Hadoop or Spark).

The highest priority is to finish 1. To make sure that we accomplish this item, we need a scheduler/champion to monitor tasks and issues of this item. I am wondering if there is one person who can take on this role. Or we can do distributed computing: there is a champion for each of T1 to T6. Ideally, the champion is the person who takes on the major missing piece of each Ti. Please let me know. If no response, I will make a proposal.

Thank you so much!

Richard



--
Richard


ONOS arch diagram

Y. Richard Yang
 

Dear team,

I am taking a quick look at ONOS, and saw this architecture diagram:

It sure is similar to our architecture. Even the names are similar (provider, mamaner, adminservice, service/rfc7285).

Cheers,

Richard


Re: ALTO in ODL Planning

Y. Richard Yang
 

Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, Integer> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, Double> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard


Re: ALTO in ODL Planning

dongshu
 

Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, Integer> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, Double> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard


Re: ALTO in ODL Planning

Y. Richard Yang
 

Hi Shu,

Let's schedule a design meeting soon. It depends on when Xin and Kai are available.

Xin/Kai: please let us know.

Let me summarize the option, if we use yang (BTW: I always think using yang is a wrong design decision, because it does not add much free ride but add much restriction, at least for a programmer, :-(

Here is the proposal: Base cost-map includes only meta; depends on cost-metric, we add (augment) the correct hash map. This is to simulate the inheritance design in my previous email (base class has only meta and each derived class has the correct HashMap of HashMap; note there is a typo in the previous email, which I fixed in this reply). I will take a look at Jackson to see how it handles such stateful parsing.

I thought about a yang storage model where each cost value is always a float (this is allowed by the Java promotion rule), but it is a hack that will fall apart when we add vector.

Thanks.

Richard 



On Wednesday, April 22, 2015, 董舒 <dongs2011@...> wrote:
Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, HashMap<String, Integer>> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, HashMap<String, Double>> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard



--
Richard


Jackson as jax-rs provider?

Y. Richard Yang
 

Hi Kai, all,

I am taking a look at alto-northbound on how it parses the entity body. My early thought was that we would define new entity body providers to parse and serialize alto media types: https://jersey.java.net/documentation/latest/message-body-workers.html

In reading the current design (alto/alto-northbound/src/main/java/org/opendaylight/alto/northbound), I saw that we are parsing a string, e.g.,
    @Path("/filtered/networkmap/{id}")
    @POST
    @Consumes({ MediaType.ALTO_NETWORKMAP_FILTER})
    @Produces({ MediaType.ALTO_NETWORKMAP, MediaType.ALTO_ERROR})
    public Response retrieveFilteredNetworkMap(
            @PathParam("id") String id, String filterJSON) {
    ...
    NetworkMap.Filter filter = mapper.asNetworkMapFilter(filterJSON);
...

I am not an expert of jax-rs, and I am actually fine with parsing the body as a String. This seems to imply scanning the msg body twice: first to convert to a strng and the scan it, but the msg body is small anyway. 

My question is: how is the conversion from body to the string happened (https://jersey.java.net/documentation/latest/message-body-workers.html#providers-selection). Is the MessageBodyReader<T>/MessageBodyWriter<T> design considered ()?

Thanks!

Richard


Northbound/RFC7285 CostMap

Y. Richard Yang
 

Dear Kai, team,

I am reading up the parser of RFC7285 (alto/alto-commons/src/main/java/org/opendaylight/alto/commons/types/rfc7285). Let me start by saying that the current design is very clean. Great work!

Here is some more thinking:
- Jackson has three methods to process JSON (data binding, tree, and streaming: http://wiki.fasterxml.com/JacksonInFiveMinutes). The cleanest is definitely data binding, which is the current design. 

- An unknown type in RFC7285 is cost map. As we discussed in previous email, it can be  
Map<String, Map<String, Integer>> 
or 
Map<String, Map<String, Double>> 
depending on the cost-mode. Later, it may become an array...

The current design is the following (alto/alto-commons/src/main/java/org/opendaylight/alto/commons/types/rfc7285/CostMap.java):
    @JsonProperty("meta")
    public Meta meta;

    @JsonProperty("cost-map")
    public Map<String, Map<String, Object>> map
                        = new LinkedHashMap<String, Map<String, Object>>();

This is a clever design using Object. 

One question: I have not tested the code. Given that the northbound writing is public String asJSON(Object obj) throws Exception {
        return mapper.writeValueAsString(obj);
    }

Is it RFC7285 compliant (i.e., output int or double for cost map)?

Suppose we do want the more specific type (e.g., some cost being int and some being double is not allowed), so that Object is changed to a specific ValueType, then generic binding may not work, and we will need to use the streaming parser:

  JsonFactory f = new JsonFactory();
  JsonParser jp = f.createJsonParser(json);
  // skip to first sub object -- **need to assume that the first is meta though**
  Meta meta = mapper.readValue(jp, Meta.class);
  // look into the cost mode in meta and decide the ValueType;
  // map is a pointer to the specific types
  if ("numerical".equals(meta.costType.mode))
    // one branch
  else if 
    // another branch
  ...

I am not proposing the preceding change yet, but it may help to give comments on the design choices--for example, the choice of map of map to Object instead of specific int or double.

Make sense?

Richard


Re: ALTO in ODL Planning

Gao Kai <gaok12@...>
 

Won't be available until Friday night.


-----原始邮件-----
发件人: "Y. Richard Yang" <yry@...>
发送时间: 2015-04-22 21:09:09 (星期三)
收件人: "董舒" <dongs2011@...>
抄送: "Kai Gao" <gaok12@...>, "Xin Li" <yakumolx@...>, "Xin Wang (Tongji)" <xinwang2014@...>, "Wendy Roome" <wendy@...>, "alto-dev@..." <alto-dev@...>
主题: Re: ALTO in ODL Planning

Hi Shu,

Let's schedule a design meeting soon. It depends on when Xin and Kai are available.

Xin/Kai: please let us know.

Let me summarize the option, if we use yang (BTW: I always think using yang is a wrong design decision, because it does not add much free ride but add much restriction, at least for a programmer, :-(

Here is the proposal: Base cost-map includes only meta; depends on cost-metric, we add (augment) the correct hash map. This is to simulate the inheritance design in my previous email (base class has only meta and each derived class has the correct HashMap of HashMap; note there is a typo in the previous email, which I fixed in this reply). I will take a look at Jackson to see how it handles such stateful parsing.

I thought about a yang storage model where each cost value is always a float (this is allowed by the Java promotion rule), but it is a hack that will fall apart when we add vector.

Thanks.

Richard 



On Wednesday, April 22, 2015, 董舒 <dongs2011@...> wrote:
Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, HashMap<String, Integer>> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, HashMap<String, Double>> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard



--
Richard




Re: ALTO in ODL Planning

xinwang
 

Me too, i will be available at Friday night.


Date: Thu, 23 Apr 2015 09:04:13 +0800
From: gaok12@...
To: yry@...
CC: dongs2011@...; yakumolx@...; xinwang2014@...; wendy@...; alto-dev@...
Subject: Re: Re: ALTO in ODL Planning

Won't be available until Friday night.


-----原始邮件-----
发件人: "Y. Richard Yang" <yry@...>
发送时间: 2015-04-22 21:09:09 (星期三)
收件人: "董舒" <dongs2011@...>
抄送: "Kai Gao" <gaok12@...>, "Xin Li" <yakumolx@...>, "Xin Wang (Tongji)" <xinwang2014@...>, "Wendy Roome" <wendy@...>, "alto-dev@..." <alto-dev@...>
主题: Re: ALTO in ODL Planning

Hi Shu,

Let's schedule a design meeting soon. It depends on when Xin and Kai are available.

Xin/Kai: please let us know.

Let me summarize the option, if we use yang (BTW: I always think using yang is a wrong design decision, because it does not add much free ride but add much restriction, at least for a programmer, :-(

Here is the proposal: Base cost-map includes only meta; depends on cost-metric, we add (augment) the correct hash map. This is to simulate the inheritance design in my previous email (base class has only meta and each derived class has the correct HashMap of HashMap; note there is a typo in the previous email, which I fixed in this reply). I will take a look at Jackson to see how it handles such stateful parsing.

I thought about a yang storage model where each cost value is always a float (this is allowed by the Java promotion rule), but it is a hack that will fall apart when we add vector.

Thanks.

Richard 



On Wednesday, April 22, 2015, 董舒 <dongs2011@...> wrote:
Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, HashMap<String, Integer>> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, HashMap<String, Double>> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard



--
Richard




Re: ALTO in ODL Planning

Y. Richard Yang
 

OK. Let's plan Saturday morning your time (Friday evening my time). Let's set 10 am your time. How does this sound?

Richard

On Wed, Apr 22, 2015 at 9:10 PM, wangxin <xinwang2014@...> wrote:
Me too, i will be available at Friday night.


Date: Thu, 23 Apr 2015 09:04:13 +0800
From: gaok12@...
To: yry@...
CC: dongs2011@...; yakumolx@...; xinwang2014@...; wendy@...; alto-dev@...
Subject: Re: Re: ALTO in ODL Planning


Won't be available until Friday night.


-----原始邮件-----
发件人: "Y. Richard Yang" <yry@...>
发送时间: 2015-04-22 21:09:09 (星期三)
收件人: "董舒" <dongs2011@...>
抄送: "Kai Gao" <gaok12@...>, "Xin Li" <yakumolx@...>, "Xin Wang (Tongji)" <xinwang2014@...>, "Wendy Roome" <wendy@...>, "alto-dev@..." <alto-dev@...>
主题: Re: ALTO in ODL Planning

Hi Shu,

Let's schedule a design meeting soon. It depends on when Xin and Kai are available.

Xin/Kai: please let us know.

Let me summarize the option, if we use yang (BTW: I always think using yang is a wrong design decision, because it does not add much free ride but add much restriction, at least for a programmer, :-(

Here is the proposal: Base cost-map includes only meta; depends on cost-metric, we add (augment) the correct hash map. This is to simulate the inheritance design in my previous email (base class has only meta and each derived class has the correct HashMap of HashMap; note there is a typo in the previous email, which I fixed in this reply). I will take a look at Jackson to see how it handles such stateful parsing.

I thought about a yang storage model where each cost value is always a float (this is allowed by the Java promotion rule), but it is a hack that will fall apart when we add vector.

Thanks.

Richard 



On Wednesday, April 22, 2015, 董舒 <dongs2011@...> wrote:
Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, HashMap<String, Integer>> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, HashMap<String, Double>> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard



--
Richard






--
-- 
 =====================================
| Y. Richard Yang <yry@...>   |
| Professor of Computer Science       |
 =====================================


Re: ALTO in ODL Planning

Y. Richard Yang
 

BTW, I am switching back to slack for better coordination. Please do check it.

Thanks.
Richard

On Wed, Apr 22, 2015 at 9:12 PM, Y. Richard Yang <yry@...> wrote:
OK. Let's plan Saturday morning your time (Friday evening my time). Let's set 10 am your time. How does this sound?

Richard

On Wed, Apr 22, 2015 at 9:10 PM, wangxin <xinwang2014@...> wrote:
Me too, i will be available at Friday night.


Date: Thu, 23 Apr 2015 09:04:13 +0800
From: gaok12@...
To: yry@...
CC: dongs2011@...; yakumolx@...; xinwang2014@...; wendy@...; alto-dev@...
Subject: Re: Re: ALTO in ODL Planning


Won't be available until Friday night.


-----原始邮件-----
发件人: "Y. Richard Yang" <yry@...>
发送时间: 2015-04-22 21:09:09 (星期三)
收件人: "董舒" <dongs2011@...>
抄送: "Kai Gao" <gaok12@...>, "Xin Li" <yakumolx@...>, "Xin Wang (Tongji)" <xinwang2014@...>, "Wendy Roome" <wendy@...>, "alto-dev@..." <alto-dev@...>
主题: Re: ALTO in ODL Planning

Hi Shu,

Let's schedule a design meeting soon. It depends on when Xin and Kai are available.

Xin/Kai: please let us know.

Let me summarize the option, if we use yang (BTW: I always think using yang is a wrong design decision, because it does not add much free ride but add much restriction, at least for a programmer, :-(

Here is the proposal: Base cost-map includes only meta; depends on cost-metric, we add (augment) the correct hash map. This is to simulate the inheritance design in my previous email (base class has only meta and each derived class has the correct HashMap of HashMap; note there is a typo in the previous email, which I fixed in this reply). I will take a look at Jackson to see how it handles such stateful parsing.

I thought about a yang storage model where each cost value is always a float (this is allowed by the Java promotion rule), but it is a hack that will fall apart when we add vector.

Thanks.

Richard 



On Wednesday, April 22, 2015, 董舒 <dongs2011@...> wrote:
Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, HashMap<String, Integer>> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, HashMap<String, Double>> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard



--
Richard






--
-- 
 =====================================
| Y. Richard Yang <yry@...>   |
| Professor of Computer Science       |
 =====================================



--
-- 
 =====================================
| Y. Richard Yang <yry@...>   |
| Professor of Computer Science       |
 =====================================


Re: ALTO in ODL Planning

Xin Li <yakumolx@...>
 

Good to me.

On Thu, Apr 23, 2015 at 9:12 AM, Y. Richard Yang <yry@...> wrote:
OK. Let's plan Saturday morning your time (Friday evening my time). Let's set 10 am your time. How does this sound?

Richard

On Wed, Apr 22, 2015 at 9:10 PM, wangxin <xinwang2014@...> wrote:
Me too, i will be available at Friday night.


Date: Thu, 23 Apr 2015 09:04:13 +0800
From: gaok12@...
To: yry@...
CC: dongs2011@...; yakumolx@...; xinwang2014@...; wendy@...; alto-dev@...
Subject: Re: Re: ALTO in ODL Planning


Won't be available until Friday night.


-----原始邮件-----
发件人: "Y. Richard Yang" <yry@...>
发送时间: 2015-04-22 21:09:09 (星期三)
收件人: "董舒" <dongs2011@...>
抄送: "Kai Gao" <gaok12@...>, "Xin Li" <yakumolx@...>, "Xin Wang (Tongji)" <xinwang2014@...>, "Wendy Roome" <wendy@...>, "alto-dev@..." <alto-dev@...>
主题: Re: ALTO in ODL Planning

Hi Shu,

Let's schedule a design meeting soon. It depends on when Xin and Kai are available.

Xin/Kai: please let us know.

Let me summarize the option, if we use yang (BTW: I always think using yang is a wrong design decision, because it does not add much free ride but add much restriction, at least for a programmer, :-(

Here is the proposal: Base cost-map includes only meta; depends on cost-metric, we add (augment) the correct hash map. This is to simulate the inheritance design in my previous email (base class has only meta and each derived class has the correct HashMap of HashMap; note there is a typo in the previous email, which I fixed in this reply). I will take a look at Jackson to see how it handles such stateful parsing.

I thought about a yang storage model where each cost value is always a float (this is allowed by the Java promotion rule), but it is a hack that will fall apart when we add vector.

Thanks.

Richard 



On Wednesday, April 22, 2015, 董舒 <dongs2011@...> wrote:
Sorry for the late reply. Just come back from office.

Actually I don't have a solution for the default cost field problem but the intuition told me that we should set a default cost field in alto-model instead of leave it as empty. I think your design is very good, but I have no idea how to implement it by yang. Do you think it's necessary to schedule a meeting to discuss it together?

On Wed, Apr 22, 2015 at 12:48 PM, Y. Richard Yang <yry@...> wrote:
Shu,

Thanks for the update! Please see below.

On Tue, Apr 21, 2015 at 11:12 PM, 董舒 <dongs2011@...> wrote:
Actually I posted my progress in slack but it seems that no one was on it, so I will post it here:

Most of the alto-manager code has been done during the last weekend. The code review link: https://git.opendaylight.org/gerrit/18601 . However, the code logic for cost map and endpoint property map is not done yet since currently alto-commons does not support converting from rfc cost-map/endpoint property-map json to the one with yang model encoding, and vice versa (which means it only supports network-map now). Since kai is busy this week, I wrote the converter for the cost-map yesterday by myself but have not tested and pushed the code. I'm expecting to finish the endpoint property map part tonight.

Great!
 
After that I will finalize alto-manger and then help with @xinli to write the test cases with robot framework. I'm expecting to finished all the test cases related to alto-manager this week.
 
Thanks. 
 
Also, I had a long offline discussions with @xinwang about cost field of cost map. Things become a little complicated when it comes to cost field of cost map. If we use augmentation for cost field, alto-commons will depend on the project where the augmentation defined to convert cost-map json string to proper java object, that is to say, here, alto-commons is depending on alto-hosttracker. So could anyone code review and approve the code @xinwang just pushed last weekend so we could use his code?

I will review tomorrow.
 
Also, although using the augmentation, i think defining a default cost field in alto-model is necessary. Currently what we did is just deleting the field from alto-model and defining it in some other projects by augmentation.

Let me understand. What is a goal of defining a default cost field? Or you are suggesting that there is a default cost field, say numerical, and then use augment to change (or add) it into another type, when it is, say, ordinal? My understanding is that augment can only add (https://tools.ietf.org/html/rfc6020#section-7.15). 

For efficient storage, in terms of Java classes, I feel that a possible definition of a cost-map is the following:

Inner level is from string (dst pid name) to the type such as a float (numerical) or int (ordinal) or vector (path-vector): HashMap<String, Integer> or HashMap<String, Double> or HashMap<String, Vector>, ..

Outer level is a hash map from string (src pidname) to the inner level hashmap, e.g.,
HashMap<String, HashMap<String, ValueType>>

A very dumb inheritance based design is is:
class CostMapBase {
  // base field (meta)
}

class CostMapInt extends CostMapBase {
  HashMap<String, HashMap<String, Integer>> costmap;
}

class CostMapDouble extends CostMapBase {
  HashMap<String, HashMap<String, Double>> costmap;
}

Or if one uses the containment design:
class CostMap<ValueType> {
  // meta
 HashMap<String, HashMap<String, ValueType>> costmap;
}

I believe that the augment mapping is based on inheritance. Hence, to simulate the first design, the augment defines the whole hashmap of hashmap. Make sense?

Richard 


On Wed, Apr 22, 2015 at 9:15 AM, Y. Richard Yang <yry@...> wrote:
Dear team,

Just in case you are wondering on the quietness of this team, since Kai and Xin Wang are in ODL training, I feel that it is OK to slow down a bit this week. After this week, we will have 2.5 weeks to finalize (Code Free May 14). I am taking advantage of this time to handle a few other issues and read up on ONOS, to see how much of our work can be designed to be general, i.e., portable to ONOS as well, so that we go do a final code refactoring, if needed. 

To avoid to much idle, can one of you (Shu and Xin Li) send out an update on the current status, in particular the missing pieces in terms of finishing T1-T6, so that Wendy and I can start to review the code and help?

Shu/Xin: Could you please send this soon?

Thanks a lot!

Richard



--
Richard






--
-- 
 =====================================
| Y. Richard Yang <yry@...>   |
| Professor of Computer Science       |
 =====================================


Follow up with Document status

George Zhao <George.Y.Zhao@...>
 

Project leads in the following projects, could you please provide your documentation locations:

 

AAA

ALTO

Controller,

D4A

DIDM

dLux

L2switch

SDNi

SNMP

SNMP4SDN

SNBI

Yangtools

 

Please use TTP project for example, its documentation in docs.git/manuals/developers-guide/src/main/asciidoc/ttp.adoc

 

Thanks,

George


Re: Follow up with Document status

Harman Singh (harmasin) <harmasin@...>
 

Hi George,

Here is the gerrit link for dlux documentation change - https://git.opendaylight.org/gerrit/#/c/19179/

Thanks,
- Harman

From: George Zhao <George.Y.Zhao@...>
Date: Monday, April 27, 2015 at 12:19 PM
To: "aaa-dev@..." <aaa-dev@...>, "alto-dev@..." <alto-dev@...>, "controller-dev@..." <controller-dev@...>, "'defense4all-dev@...'" <defense4all-dev@...>, "didm-dev@..." <didm-dev@...>, "dlux-dev@..." <dlux-dev@...>, "yangtools-dev@..." <yangtools-dev@...>, "'snmp4sdn-dev@...'" <snmp4sdn-dev@...>, "snbi-dev@..." <snbi-dev@...>, "release@..." <release@...>, "'snmp-dev@...'" <snmp-dev@...>, "sdninterfaceapp-dev@..." <sdninterfaceapp-dev@...>
Cc: Wojciech Dec <wdec.ietf@...>, "yry@..." <yry@...>, "Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco)" <ttkacik@...>, "gupatel@..." <gupatel@...>, Harman Singh <harmasin@...>, "ylhsieh@..." <ylhsieh@...>, "vanadr@..." <vanadr@...>, "shahid.b@..." <shahid.b@...>
Subject: Follow up with Document status

Project leads in the following projects, could you please provide your documentation locations:

 

AAA

ALTO

Controller,

D4A

DIDM

dLux

L2switch

SDNi

SNMP

SNMP4SDN

SNBI

Yangtools

 

Please use TTP project for example, its documentation in docs.git/manuals/developers-guide/src/main/asciidoc/ttp.adoc

 

Thanks,

George


Re: [snmp-dev] Follow up with Document status

Adam Dierkens -T (adierken - ADECCO EMPLOYMENT SERVICES@Cisco) <adierken@...>
 

Hi George,


Thanks,
Adam


From: "Harman Singh (harmasin)" <harmasin@...>
Date: Monday, April 27, 2015 at 5:52 PM
To: George Zhao <George.Y.Zhao@...>, "aaa-dev@..." <aaa-dev@...>, "alto-dev@..." <alto-dev@...>, "controller-dev@..." <controller-dev@...>, "'defense4all-dev@...'" <defense4all-dev@...>, "didm-dev@..." <didm-dev@...>, "dlux-dev@..." <dlux-dev@...>, "yangtools-dev@..." <yangtools-dev@...>, "'snmp4sdn-dev@...'" <snmp4sdn-dev@...>, "snbi-dev@..." <snbi-dev@...>, "release@..." <release@...>, "'snmp-dev@...'" <snmp-dev@...>, "sdninterfaceapp-dev@..." <sdninterfaceapp-dev@...>
Cc: "ylhsieh@..." <ylhsieh@...>, "Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco)" <ttkacik@...>, Wojciech Dec <wdec.ietf@...>, "shahid.b@..." <shahid.b@...>, "vanadr@..." <vanadr@...>, "yry@..." <yry@...>, "gupatel@..." <gupatel@...>
Subject: Re: [snmp-dev] Follow up with Document status

Hi George,

Here is the gerrit link for dlux documentation change - https://git.opendaylight.org/gerrit/#/c/19179/

Thanks,
- Harman

From: George Zhao <George.Y.Zhao@...>
Date: Monday, April 27, 2015 at 12:19 PM
To: "aaa-dev@..." <aaa-dev@...>, "alto-dev@..." <alto-dev@...>, "controller-dev@..." <controller-dev@...>, "'defense4all-dev@...'" <defense4all-dev@...>, "didm-dev@..." <didm-dev@...>, "dlux-dev@..." <dlux-dev@...>, "yangtools-dev@..." <yangtools-dev@...>, "'snmp4sdn-dev@...'" <snmp4sdn-dev@...>, "snbi-dev@..." <snbi-dev@...>, "release@..." <release@...>, "'snmp-dev@...'" <snmp-dev@...>, "sdninterfaceapp-dev@..." <sdninterfaceapp-dev@...>
Cc: Wojciech Dec <wdec.ietf@...>, "yry@..." <yry@...>, "Tony Tkacik -X (ttkacik - Pantheon Technologies SRO at Cisco)" <ttkacik@...>, "gupatel@..." <gupatel@...>, Harman Singh <harmasin@...>, "ylhsieh@..." <ylhsieh@...>, "vanadr@..." <vanadr@...>, "shahid.b@..." <shahid.b@...>
Subject: Follow up with Document status

Project leads in the following projects, could you please provide your documentation locations:

 

AAA

ALTO

Controller,

D4A

DIDM

dLux

L2switch

SDNi

SNMP

SNMP4SDN

SNBI

Yangtools

 

Please use TTP project for example, its documentation in docs.git/manuals/developers-guide/src/main/asciidoc/ttp.adoc

 

Thanks,

George


a question about alto ecs ?

linxiao9292
 

Hi all,

When ALTO server provide endpoint cost between h1 and h2 , is the path between h1 and h2 given ?

For example, 

before ALTO server provides endpoint cost, it knows that h1 can connect to h2 in path h1-s1-s3-h2
h1-s1-s3-h2
       |    |
      s2-s4

Or

ALTO server could assume by itself that h1 could be connect to h2 through path h1-s1-s2-s4-s3-h2?

Thanks & Best Wishes!

Xiao Lin


Re: a question about alto ecs ?

Wendy Roome
 

According the rfc 7285,  ECS response just gives the cost. The server hides the path and any other information it uses to calculate the cost.

The easiest way to implement ECS is for the server to map each endpoint to a pid and return the costs between the pids. But the server  MAY use more detailed cost information if it wants.

Does that help?



On Apr 29, 2015, at 21:15, <linxiao9292@...> <linxiao9292@...> wrote:

Hi all,

When ALTO server provide endpoint cost between h1 and h2 , is the path between h1 and h2 given ?

For example, 

before ALTO server provides endpoint cost, it knows that h1 can connect to h2 in path h1-s1-s3-h2
h1-s1-s3-h2
       |    |
      s2-s4

Or

ALTO server could assume by itself that h1 could be connect to h2 through path h1-s1-s2-s4-s3-h2?

Thanks & Best Wishes!

Xiao Lin
_______________________________________________
alto-dev mailing list
alto-dev@...
https://lists.opendaylight.org/mailman/listinfo/alto-dev

41 - 60 of 542