SDN开发笔记(一):SDN开发环境的搭建(win7环境)

前言

鉴于网上对于SDN开发相关的资料较少又乱的现状,从这篇文章开始,我将陆续分享我在SDN开发过程中的经验,我的SDN项目开发是基于OpenDaylight的release-lithium-sr3版本,该版本相对稳定。分享内容都是经过我精心测试与验证,包括:
1、SDN开发环境的搭建(win7环境)
2、SDN控制器的使用(ubuntu环境搭建、controller使用、mininet的使用)
3、ODL源码编译生成发行版控制器
4、md-sal应用程序开发指南
5、应用程序集成到ODL控制器
6、yang模型详解
7、md-sal的l2switch源码分析

作者简介:鸿哥,硕士研究生,国内某通信设备公司软件研发工程师,主要从事云计算、SDN技术开发

正文

在开发SDN应用程序之前,需要先搭建好开发环境,鉴于开发java代码大家都习惯于使用windows下的eclipse集成环境,这里采用eclipse(win7-64位)作为开发环境。

windows 环境:Windows 7 旗舰版 Service Pack 1 64位(一般windows都可以正常搭建好环境,写这个的目的是有些童鞋的win7用的已经问题百出,再按照下面的步骤搭建环境出现一些稀奇古怪的问题,我也无法一一回答,所以还是整个干净点的win7再搭建吧)

步骤如下:

JDK-1.8安装配置

1、采用版本:jdk-8.0u73 (目前最新的版本为jdk-8u91/92,但是发现该版本在某些新装win7上死活安装不上,也是一个坑,另外建议采用jdk1.8版本,因为在OpenDaylight的Beryllium版本有些模块使用jdk1.7编译会报版本太低的错误,这样的错误也是你无法找到解决方案的)

2、下载链接:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jdk-8u73-oth-JPR

3、找到jdk-8u73-windows-x64.exe并下载

4、安装,双击jdk-8u73-windows-x64.exe该文件下一步下一步即可,安装目录为:C:\Program Files\Java\jdk1.8.0_73

5、配置环境变量JAVA_HOME,从控制面板->系统和安全->系统,选择左侧的高级系统设置

6、点击“环境变量...”,进入配置,点击最下方的“新建(N)...”,

7、新建系统环境变量,变量名为JAVA_HOME,变量值是C:\Program Files\Java\jdk1.8.0_73

8、配置环境变量CLASSPATH,同上,新建系统环境变量为CLASSPATH,值为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

9、修改path环境变量,添加%JAVA_HOME%\bin

10、新增JAVA_TOOL_OPTIONS环境变量:
变量名:JAVA_TOOL_OPTIONS
变量值:-Dfile.encoding=UTF8

11、从cmd打开dos窗口,输入javac和java确定是否配置成功,出现下面界面说明jdk是ok的。

Maven安装配置

1、安装版本:maven-3.3.9

2、下载链接:https://maven.apache.org/download.cgi

3、找到apache-maven-3.3.9-bin.zip下载,解压放在C:\apache-maven-3.3.9

4、配置环境变量,新增M2_HOME和MAVEN_OPTS系统环境变量
M2_HOME:C:\apache-maven-3.3.9
MAVEN_OPTS:-Xmx1024m -XX:MaxPermSize=512m
PATH:%M2_HOME%\bin;

5、在path里加入maven的bin路径

6、运行cmd,打开dos命令窗口,输入mvn -v命令,出现下面界面说明ok。

eclipse安装配置
1、安装版本:eclipse-jee-mars-2-win32-x86_64

2、下载链接:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/2/eclipse-jee-mars-2-win32-x86_64.zip

3、解压到本地目录下(任意目录都可以),运行eclipse.exe,启动eclipse

4、配置eclipse,有时候Windows默认为GBK,需要设置工作区编码为UTF-8:
从Window=>Preferences=>General=>Workspace

5、设置JDK环境,从Window=>Preferences,左侧输入jdk,选择Installed JREs,默认是jre,这里必须选择jdk,如下图所示

6、安装build-helper-maven:
a)Windows => Preferences => Maven =>Discovery=>Open Catalog =>buildhelper



7、安装成功后,会提示重启eclipse

OpenDaylight代码导入eclipse

1、打开Eclipse, 选择File => Import => Maven => Existing Maven Projects。

点击“Next”,

2、比如我导入l2switch的代码到eclipse中,只需选择该代码位置,导入即可,导入过程有点慢,请耐心等待。如遇到以下界面,点击Finish。

3、导入后界面如下:

4、导入后会存在很多错误,可忽略。

eclipse 编译代码

1、新建maven编译命令,选择代码右击-》Run As => Run Configuration...

2、新建好maven编译命令之后就可以使用eclipse对代码编译了,右击代码-》Run As-》Maven Build

3、出现下面则表示编译成功

4、左侧栏出现以下界面,addresstracker-impl-0.2.3-Lithium-SR3.jar即编译好的jar文件。

使用eclipse断点调试程序

1、做程序开发必然要用到代码调试以及log输出,这里暂时讲解如何使用eclipse来断点调试自己编写的代码,这里以l2switch模块为例

2、启动ODL控制器,比如我在我的ubuntu虚拟机中启动ODL控制器,这里采用distribution-karaf-0.3.3-Lithium-SR3控制器,解压该文件,在ubuntu相应目录下的distribution-karaf-0.3.3-Lithium-SR3/bin下,运行
./karaf debug

注意一定要加debug参数,表示控制器以debug模式启动,启动后karaf控制台会提示 5005端口被监听,5005端口就是远程调试端口

3、在eclipse中点击Run-》Debug Configurations…,找到Remote Java Application,右击new,安装如下填写,其中
Host表示远程调试的主机ip,这里我的ubuntu虚拟机ip为192.168.65.129,Port表示远程调试的端口,这里为5005,就是刚刚讲的karaf控制台提示的5005端口

4、在该界面下点击Source,点击Add…,将要调试的代码加入进来


5、在代码中设置断点,在ODL控制器中安装l2switch模块如feature:install ODL-l2switch-all,模块启动之后就会运动断点处暂停,这样就可以单步调试了。

下一篇文章将讲解在ubuntu下如何使用ODL以及源码编译ODL的controller

注:投稿文章仅出于传递更多信息之目的,系SDNLAB《原创文章奖励计划》的投稿文章,仅供参考,不代表证实其描述或赞同其观点,投资者据此操作,风险自担;技术问题请留言指正。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。
  • 本文链接http://www.sdnlab.com/17124.html
分享到:
相关文章
4条评论

登录后才可以评论

  1. comment reply ZhaoBryant 2016/06/17 18:37
    期待博主的后期更新!加油!
        1楼
  2. comment reply wellbeing 2016/06/18 09:57
    点赞,期待后续更新,写得很详细啊
        2楼
  3. comment reply brook_l 2016/06/18 16:35
    讲解很详细,适合新手入门,多谢了!
        3楼
  4. comment reply 其名为鹍 2016/06/19 12:52
    看来还是新手入门级别更受欢迎
        4楼
wellbeing 发表于16-06-17
5