月度归档:2014年05月

多级分光PON网络规划算法

注:本文摘自人民邮电出版社《光网络规划与优化(黄善国&张杰&韩大海&罗沛&张治国&郭秉礼)》,ISBN 978-7-115-25797-0。部分有所改动,仅学习交流用,请支持正版书籍。

(1)多级多PON(MHMP)算法的提出

PON网络规划成本主要有两部分构成:光纤成本和设备成本。其中光纤成本包括光纤的购买成本和敷设光纤的人力成本,而光纤成本在总成本中占有相当一部分比重,因此降低光纤成本是节约PON网络总体部署成本的关键。下述介绍可降低光纤成本从而降低总成本的多级多PON的方法。

下图为一个MHMP网络规划的实例(考虑了光纤沿道路方向敷设的因素),OLT位于中心局(CO),ONU分布在由用户确定的建筑内或者家庭内。OBD的位置是通过规划来确定的。通常,规划者首先调查规划地的实际地理条件,选择一些位置作为可选的OBD位置。规划问题转化为可选OBD位置中选择最适合的地点安装OBD,从而达到总体部署成本最低的目标。 继续阅读

OpenWrt – serialoverip的自启动脚本

serialoverip功能与ser2net相似,都能实现IP端口与串口间的数据转发,但不同点在于:

1. 官方发布的ser2net只支持TCP协议转发,增加UDP需要额外加补丁(详见:http://sourceforge.net/p/ser2net/patches/12/)。
2. serialoverip支持且只支持UDP协议转发,但也因此使得其程序非常小巧。后有我注释、替换变量名后的源代码,对此类软件的原理分析很有帮助。

在安装serialoverip后,尝试加入其启动命令到rc.local中,但发现开机并未成功启动serialoverip。几番分析,是由于执行rc.local中语句时OpenWrt的IP分配还未完成(即serialoverip无法绑定192.168.1.1端口),造成启动失败。

由于serialoverip源代码对此情况没有做考虑,所以笔者决定使用sleep来固定等待,修改了rc.local中命令:

sleep 10s && serialoverip -s 192.168.1.1 10002 -d /dev/ttyATH0 9600-8N1 &

先等待10秒再打开192.168.1.1:10002上UDP端口与/dev/ttyATH0串口的转发(加&让其后台运行)。

上例方法基本解决了serialoverip无法启动的问题,但是灵活性还是较低。苦苦搜索了sh命令规范后,本吊探索出一个更灵活的脚本(由于Linux虚拟机没装输入法,所以用英文注解了): 继续阅读

OpenWrt – 编译前的./scripts/feeds脚本用法

从OpenWrt获取源码(详见https://dev.openwrt.org/wiki/GetSource)后,直接使用make menuconfig来设置编译参数的时候是没有Luci和一些其他包的。

此时我们需要使用源代码里script文件夹下的feeds脚本来更新包列表,并将其集成到menuconfig中(假定现在的位置是OpenWrt源代码目录里):

更新包列表:./scripts/feeds update -a
集成到menuconfig:./scripts/feeds install -a

此外可以直接输入./scripts/feeds查看其用法,下面简略翻译了一下用法(水平有限,若有错误欢迎指正): 继续阅读