[L2switch-dev] How to compute the routing path between two hosts in OpenDayLight?


Y. Richard Yang
 



On Fri, Aug 7, 2015 at 1:30 PM, Evan Zeller <evanrzeller@...> wrote:
You may be interested in https://wiki.opendaylight.org/view/BGP_LS_PCEP:Main , as for other protocols there is no such module that I know of. It seems to me that this baseline traditional networking functionality is one of the first things newcomers to ODL look for, but don't find as actual resources seem focused in other areas. Food for thought...

Is this something to engage the ODL TSC to look into?

Richard
 
As far as the path functionality in l2switch I'm not sure about it. Maybe Amit can comment on it.

On Fri, Aug 7, 2015 at 8:24 AM, Junzhuo Wang <wangjunzhuo200@...> wrote:
A further question. Is there a layer 3 routing module could make OpenFlow switcher acts like a traditional router?

Thanks!
Junzhuo


Hi Evan,

It great to have your reply! I’ve seen that the method “addBidirectionalMacToMacFlows” calls “addMacToMacFlow” twice. Based on the code, I assume in this implementation, the STP eliminate loops so all packets can be forwarded to all switchers. So only two flow entries could build a path between two MAC addresses.

But in my test, the MAC to MAC flow only be built when two hosts connected to the same switcher. This phenomenon really confuses me. I’m looking forward to your reply.

Thanks!
Junzhuo


The Minimum Spanning Tree is calculated to prevent loops in the network, those links that receive STP blocking status won't have flows written on them. FlowWriterServiceImpl.java in l2switch-main may have what you're looking for, it can create mac to mac flows, I'm not sure how robust the functionality is at the moment. 

On Thu, Aug 6, 2015 at 9:14 AM, Junzhuo Wang <wangjunzhuo200@...> wrote:
Hi André,

Thanks a lot for your reply! I’ve read the code from (https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphImpl.java#L123). The "getPath" method doesn’t exist anymore as you said. Also I did some tests and I found that the packets not always go through the shortest path. So I believe STP may be used as the current routing algorithm. If so, I can calculate the path by my self although it’s not a clean implementation. Let’s say what the code’s author says.

Junzhuo


Hi Junzhuo.
The code is here https://github.com/opendaylight/l2switch/tree/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology
but I don't know if the service is working because of https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphService.java#L41
But I've send this email to the code's author to see what he says about it.
Best regards,
--André


On 06-08-2015 07:43, Junzhuo Wang wrote:
Hi all,

I’m a member from ODL/ALTO. I’m trying to find a API to compute the routing path between two hosts. So I read the code from openflowplugin, controller. It seems openflowplugin just set the flow table to switchers. And controller seems no longer handle the routing calculation now
 (org.opendaylight.controller.sal.routing doesn’t exist now).

Finally I found this page(https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:L2_Switch) saids that the l2switch now provide routing service. Which module should I use and how to get the route between two hosts by existing APIs?

Thanks,
Junzhuo



_______________________________________________
L2switch-dev mailing list
L2switch-dev@...
https://lists.opendaylight.org/mailman/listinfo/l2switch-dev


Y. Richard Yang
 


On Fri, Aug 7, 2015 at 8:16 PM, Amit Mandke (ammandke) <ammandke@...> wrote:
addMacToMac is not complete. Some more implementation is required to make it work. Never got a time to fix it. All contributions are welcome.

To clarify,  it is incomplete because it handles only the case of the same-switch, as implied by Junzhuo's testing? So the contribution is to handle cross-switch routing?

Thanks.

Richard


From: Junzhuo Wang <wangjunzhuo200@...>
Date: Friday, August 7, 2015 at 8:24 AM
To: Evan Zeller <evanrzeller@...>
Cc: André Martins <aanm90@...>, "Tony Tkacik -X (ttkacik - PANTHEON TECHNOLOGIES at Cisco)" <ttkacik@...>, "l2switch-dev@..." <l2switch-dev@...>, Amit Mandke <ammandke@...>, Shu Dong <dongs2011@...>, "linxiao9292@..." <linxiao9292@...>, Jensen Zhang <jingxuan.n.zhang@...>, 陈明明 <mingmingminne@...>, "Y. Richard Yang" <yry@...>, "gaok12@..." <gaok12@...>
Subject: Re: [L2switch-dev] How to compute the routing path between two hosts in OpenDayLight?

A further question. Is there a layer 3 routing module could make OpenFlow switcher acts like a traditional router?

Thanks!
Junzhuo


Hi Evan,

It great to have your reply! I’ve seen that the method “addBidirectionalMacToMacFlows” calls “addMacToMacFlow” twice. Based on the code, I assume in this implementation, the STP eliminate loops so all packets can be forwarded to all switchers. So only two flow entries could build a path between two MAC addresses.

But in my test, the MAC to MAC flow only be built when two hosts connected to the same switcher. This phenomenon really confuses me. I’m looking forward to your reply.

Thanks!
Junzhuo


The Minimum Spanning Tree is calculated to prevent loops in the network, those links that receive STP blocking status won't have flows written on them. FlowWriterServiceImpl.java in l2switch-main may have what you're looking for, it can create mac to mac flows, I'm not sure how robust the functionality is at the moment. 

On Thu, Aug 6, 2015 at 9:14 AM, Junzhuo Wang <wangjunzhuo200@...> wrote:
Hi André,

Thanks a lot for your reply! I’ve read the code from (https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphImpl.java#L123). The "getPath" method doesn’t exist anymore as you said. Also I did some tests and I found that the packets not always go through the shortest path. So I believe STP may be used as the current routing algorithm. If so, I can calculate the path by my self although it’s not a clean implementation. Let’s say what the code’s author says.

Junzhuo


Hi Junzhuo.
The code is here https://github.com/opendaylight/l2switch/tree/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology
but I don't know if the service is working because of https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphService.java#L41
But I've send this email to the code's author to see what he says about it.
Best regards,
--André


On 06-08-2015 07:43, Junzhuo Wang wrote:
Hi all,

I’m a member from ODL/ALTO. I’m trying to find a API to compute the routing path between two hosts. So I read the code from openflowplugin, controller. It seems openflowplugin just set the flow table to switchers. And controller seems no longer handle the routing calculation now
 (org.opendaylight.controller.sal.routing doesn’t exist now).

Finally I found this page(https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:L2_Switch) saids that the l2switch now provide routing service. Which module should I use and how to get the route between two hosts by existing APIs?

Thanks,
Junzhuo



_______________________________________________
L2switch-dev mailing list
L2switch-dev@...https://lists.opendaylight.org/mailman/listinfo/l2switch-dev


陈明明 <mingmingminne@...>
 

Hi all,
I am sorry to come back so late. I sent email to cisco's stuff last Tuesday. He replied me as below:
"
Hi Mingming,
I am sure there is somewhere used the Dijkstra algorithm for this. I guess l2switch is the project involving this. You can check their wiki and eventually drop a question to their mailing list. Also you can read the topology and compute by yourself.


Regards,
"
I don't know how it goes now(I missed sync up on Saturday). I will try to find Dijkstra algorithm in ODL. And keep on asking for help from the helper? Or it has already resolved. I should do sth else? Thank you!

Best regards,
Mingming





在 2015-08-08 10:00:35,"Y. Richard Yang" <yry@...> 写道:


On Fri, Aug 7, 2015 at 8:16 PM, Amit Mandke (ammandke) <ammandke@...> wrote:
addMacToMac is not complete. Some more implementation is required to make it work. Never got a time to fix it. All contributions are welcome.

To clarify,  it is incomplete because it handles only the case of the same-switch, as implied by Junzhuo's testing? So the contribution is to handle cross-switch routing?

Thanks.

Richard


From: Junzhuo Wang <wangjunzhuo200@...>
Date: Friday, August 7, 2015 at 8:24 AM
To: Evan Zeller <evanrzeller@...>
Cc: André Martins <aanm90@...>, "Tony Tkacik -X (ttkacik - PANTHEON TECHNOLOGIES at Cisco)" <ttkacik@...>, "l2switch-dev@..." <l2switch-dev@...>, Amit Mandke <ammandke@...>, Shu Dong <dongs2011@...>, "linxiao9292@..." <linxiao9292@...>, Jensen Zhang <jingxuan.n.zhang@...>, 陈明明 <mingmingminne@...>, "Y. Richard Yang" <yry@...>, "gaok12@..." <gaok12@...>
Subject: Re: [L2switch-dev] How to compute the routing path between two hosts in OpenDayLight?

A further question. Is there a layer 3 routing module could make OpenFlow switcher acts like a traditional router?

Thanks!
Junzhuo


Hi Evan,

It great to have your reply! I’ve seen that the method “addBidirectionalMacToMacFlows” calls “addMacToMacFlow” twice. Based on the code, I assume in this implementation, the STP eliminate loops so all packets can be forwarded to all switchers. So only two flow entries could build a path between two MAC addresses.

But in my test, the MAC to MAC flow only be built when two hosts connected to the same switcher. This phenomenon really confuses me. I’m looking forward to your reply.

Thanks!
Junzhuo


The Minimum Spanning Tree is calculated to prevent loops in the network, those links that receive STP blocking status won't have flows written on them. FlowWriterServiceImpl.java in l2switch-main may have what you're looking for, it can create mac to mac flows, I'm not sure how robust the functionality is at the moment. 

On Thu, Aug 6, 2015 at 9:14 AM, Junzhuo Wang <wangjunzhuo200@...> wrote:
Hi André,

Thanks a lot for your reply! I’ve read the code from (https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphImpl.java#L123). The "getPath" method doesn’t exist anymore as you said. Also I did some tests and I found that the packets not always go through the shortest path. So I believe STP may be used as the current routing algorithm. If so, I can calculate the path by my self although it’s not a clean implementation. Let’s say what the code’s author says.

Junzhuo


Hi Junzhuo.
The code is here https://github.com/opendaylight/l2switch/tree/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology
but I don't know if the service is working because of https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphService.java#L41
But I've send this email to the code's author to see what he says about it.
Best regards,
--André


On 06-08-2015 07:43, Junzhuo Wang wrote:
Hi all,

I’m a member from ODL/ALTO. I’m trying to find a API to compute the routing path between two hosts. So I read the code from openflowplugin, controller. It seems openflowplugin just set the flow table to switchers. And controller seems no longer handle the routing calculation now
 (org.opendaylight.controller.sal.routing doesn’t exist now).

Finally I found this page(https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:L2_Switch) saids that the l2switch now provide routing service. Which module should I use and how to get the route between two hosts by existing APIs?

Thanks,
Junzhuo



_______________________________________________
L2switch-dev mailing list
L2switch-dev@...https://lists.opendaylight.org/mailman/listinfo/l2switch-dev



Austin
 

Hi Mingming,

The current status is that Dijkstra algorithm is not be used in l2switch. The related code are all been annotated. And the authors of l2switch also says this module is not complete. Instead, it use STP to forward all packets to every devices in the network. So we decide to develop our own module “l2switch-plus” to enhance the ability of l2switch. As a result, we can get routing information easily.

Best regards,
Junzhuo


Hi all,
I am sorry to come back so late. I sent email to cisco's stuff last Tuesday. He replied me as below:
"
Hi Mingming,
I am sure there is somewhere used the Dijkstra algorithm for this. I guess l2switch is the project involving this. You can check their wiki and eventually drop a question to their mailing list. Also you can read the topology and compute by yourself.


Regards,
"
I don't know how it goes now(I missed sync up on Saturday). I will try to find Dijkstra algorithm in ODL. And keep on asking for help from the helper? Or it has already resolved. I should do sth else? Thank you!

Best regards,
Mingming





在 2015-08-08 10:00:35,"Y. Richard Yang" <yry@...> 写道:

On Fri, Aug 7, 2015 at 8:16 PM, Amit Mandke (ammandke) <ammandke@...> wrote:
addMacToMac is not complete. Some more implementation is required to make it work. Never got a time to fix it. All contributions are welcome.

To clarify,  it is incomplete because it handles only the case of the same-switch, as implied by Junzhuo's testing? So the contribution is to handle cross-switch routing?

Thanks.

Richard


From: Junzhuo Wang <wangjunzhuo200@...>
Date: Friday, August 7, 2015 at 8:24 AM
To: Evan Zeller <evanrzeller@...>
Cc: André Martins <aanm90@...>, "Tony Tkacik -X (ttkacik - PANTHEON TECHNOLOGIES at Cisco)" <ttkacik@...>, "l2switch-dev@..." <l2switch-dev@...>, Amit Mandke <ammandke@...>, Shu Dong <dongs2011@...>, "linxiao9292@..." <linxiao9292@...>, Jensen Zhang <jingxuan.n.zhang@...>, 陈明明 <mingmingminne@...>, "Y. Richard Yang" <yry@...>, "gaok12@..." <gaok12@...>
Subject: Re: [L2switch-dev] How to compute the routing path between two hosts in OpenDayLight?

A further question. Is there a layer 3 routing module could make OpenFlow switcher acts like a traditional router?

Thanks!
Junzhuo


Hi Evan,

It great to have your reply! I’ve seen that the method “addBidirectionalMacToMacFlows” calls “addMacToMacFlow” twice. Based on the code, I assume in this implementation, the STP eliminate loops so all packets can be forwarded to all switchers. So only two flow entries could build a path between two MAC addresses.

But in my test, the MAC to MAC flow only be built when two hosts connected to the same switcher. This phenomenon really confuses me. I’m looking forward to your reply.

Thanks!
Junzhuo


The Minimum Spanning Tree is calculated to prevent loops in the network, those links that receive STP blocking status won't have flows written on them. FlowWriterServiceImpl.java in l2switch-main may have what you're looking for, it can create mac to mac flows, I'm not sure how robust the functionality is at the moment. 

On Thu, Aug 6, 2015 at 9:14 AM, Junzhuo Wang <wangjunzhuo200@...> wrote:
Hi André,

Thanks a lot for your reply! I’ve read the code from (https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphImpl.java#L123). The "getPath" method doesn’t exist anymore as you said. Also I did some tests and I found that the packets not always go through the shortest path. So I believe STP may be used as the current routing algorithm. If so, I can calculate the path by my self although it’s not a clean implementation. Let’s say what the code’s author says.

Junzhuo


Hi Junzhuo.
The code is here https://github.com/opendaylight/l2switch/tree/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology
but I don't know if the service is working because of https://github.com/opendaylight/l2switch/blob/master/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/NetworkGraphService.java#L41
But I've send this email to the code's author to see what he says about it.
Best regards,
--André


On 06-08-2015 07:43, Junzhuo Wang wrote:
Hi all,

I’m a member from ODL/ALTO. I’m trying to find a API to compute the routing path between two hosts. So I read the code from openflowplugin, controller. It seems openflowplugin just set the flow table to switchers. And controller seems no longer handle the routing calculation now
 (org.opendaylight.controller.sal.routing doesn’t exist now).

Finally I found this page(https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:L2_Switch) saids that the l2switch now provide routing service. Which module should I use and how to get the route between two hosts by existing APIs?

Thanks,
Junzhuo



_______________________________________________
L2switch-dev mailing list
L2switch-dev@...https://lists.opendaylight.org/mailman/listinfo/l2switch-dev