%# -*- coding: utf-8-unix -*-

\chapter{可编程网络平台－操作手册}
\label{app:openbox}

\subsection{FAST简介}

针对近年来关于工业控制网络创新技术、创新网络结构、时间敏感网络、SDN网络、FPGA硬件加速技术及下一代网络技术的研究需求，由国防科大与湖南新实共同发起的开源项目——FAST（FPGA Accelerated Switcing plaTform）于2016年创建。截止到目前，该开源项目已经服务全国多所高校和科研院所的网络实验建设和科研项目。

FAST平台的架构是一种通用多核CPU加FPGA形态的网络处理架构，该平台架构主要由硬件逻辑和软件逻辑两部分组成，实现软硬件耦合通信与支持软硬件可编程的网络创新实验系统。其中硬件包括平台相关的数据IO和FAST硬件逻辑。软件部分包括通用操作系统与FAST软件逻辑。FAST软件逻辑包括软件开发环境和UA程序。该平台，不仅支持FAST的UA编程开发，同时也支持通用APP的开发与运行。

\subsection{设备简介}

OpenBox-S4是一款软硬件全功能可编程网络实验平台的具体型号产品，该产品基于多核CPU加FPGA异构模型的FAST处理架构实现，软件在CPU上使用C语言编程，硬件在FPGA芯片上使用Verilog语言编程。全系统根据FAST架构搭建其软硬件基础运行环境，内部软硬件用户逻辑支持所有FAST架构开发的应用、标准的网络协议栈与通用网络应用。平台软硬件逻辑代码开源免费，支持用户二次开发。

\subsection{设备上电检测}
用户拿到设备后，首先做个简单的上电测试，以确保硬件平台可以正常工作。

\subsubsection{设备外部接口及其配件说明}
\begin{enumerate}
\item 设备外观与接口，正面如下图所示：
    
     \begin{figure}[!htp]
     \centering
     \includegraphics[width=11cm]{f01}
     \caption{正面外部接口}
     \label{fig:a:ob_f01}
     \end{figure}
     
\item 设备外观与接口，背面如下图所示：

	\begin{figure}[!htp]
	\centering
	\includegraphics[width=11cm]{f02}
	\caption{背面外部接口}
	\label{fig:a:ob_f02}
	\end{figure}

\item 12V-1A电源线，如下图所示：

	\begin{figure}[!htp]
	\centering
	\includegraphics[width=11cm]{f03}
	\caption{设备电源线}
	\label{fig:a:ob_f03}
	\end{figure}

\item 串口线，如下图所示：

	\begin{figure}[!htp]
	\centering
	\includegraphics[width=11cm]{f04}
	\caption{设备串口线}
	\label{fig:a:ob_f04}
	\end{figure}

\item 设备烧录线，如下图所示：

	\begin{figure}[!htp]
	\centering
	\includegraphics[width=11cm]{f05}
	\caption{设备烧录线}
	\label{fig:a:ob_f05}
	\end{figure}

\end{enumerate}

\subsubsection{检测准备}
\begin{enumerate}
\item 物品准备

	\begin{table}[!htp]
	\small
	\centering
	\caption{以太网帧格式}
	\label{tab:c:wireshark_eth-format}
	\begin{tabular}{|c|c|} \hline
	\heiti 测试项 & \heiti 所需物品 \\ \hline
	上电检测 & 一台设备及电源\\ \hline
	串口检测 & 一台设备及电源、一台电脑、一个micro usb 串口线\\ \hline
	管理网口（MGMT） & 一台设备及电源、一台电脑、一个网线\\ \hline
	\end{tabular}
	\end{table}
\end{enumerate}

\subsubsection{上电检测}
\begin{enumerate}
\item 连接电源，将电源开关拨到ON（向右）；
\item 观察电源指示灯变化情况；
\item 电源开关拨到ON（向右）后，CFG电源指示灯会亮一下；

	\begin{figure}[!htp]
	\centering
	\includegraphics[width=11cm]{f06}
	\caption{电源指示灯（刚接入电源）}
	\label{fig:a:ob_f06}
	\end{figure}
\item CFG电源指示灯过几秒后就灭了；

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f07}
\caption{电源指示灯（系统配置）}
\label{fig:a:ob_f07}
\end{figure}
电源指示灯（系统配置）
\item 等待15秒左右，RUN电源指示灯常亮。

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f08}
\caption{电源指示灯（系统运行）}
\label{fig:a:ob_f08}
\end{figure}
\end{enumerate}

\subsubsection{串口检测}
\begin{enumerate}
\item 确保micro usb串口线连接到设备上，并且设备已上电；
\item 确保调试电脑已安装了PUTTY串口终端工具，PUTTY软件包以及详细安装教程请自行搜索；
\item 确保调试电脑已安装了CP2102驱动，CP2102驱动包以及详细安装教程请自行搜索；
\item 电脑的设备管理器，查看设备的COM口数值。（如下图，设备的COM口数值为COM3，不同的电脑显示的COM口数值会不同）。

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f09}
\caption{查看设备的COM口数值}
\label{fig:a:ob_f09}
\end{figure}
\item 打开PUTTY工具界面；

\begin{enumerate}


\item 先点击右边Connection type位置的serial选项；
\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f10}
\caption{putty软件界面}
\label{fig:a:ob_f10}
\end{figure}
\item 点击左边category栏的 serial标签；
\item 在Serial line to connect to 栏，填写设备管理器中看到的COM数值；
\item 在Speed栏，填写串口的波特率为115200；
\item 在 Data bits栏。填写数据位宽为8；
\item 在Flow control栏，选择None。
\item 如下所示，调试电脑的COM数值为COM3，所以serial line栏填写为COM3。
（不同电脑的COM数值可能不同，请填写实际的COM数值）

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f11}
\caption{putty软件串口配置参数}
\label{fig:a:ob_f11}
\end{figure}
\end{enumerate}
\item 点击 open ，进入设备系统，则串口测试OK。
\end{enumerate}


\subsubsection{管理网口检测}
\begin{enumerate}
\item 使用一根网线，将调试电脑与设备的管理网口连接；
\item 设备管理网口的默认ip地址为：192.168.50.5，所以需要将调试电脑的ip地址设置成与设备管理网口的ip地址在同一个网段下（也就是192.168.50.0网段）；
\item 在调试电脑的 控制面板->网络和Internet->网络设备中。点击以太网->属性->internet协议版本4（TCP/IPV4），进行ip地址的配置。如下所示:

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f12}
\caption{配置以太网的IP地址}
\label{fig:a:ob_f12}
\end{figure}
\item 在调试电脑的 控制面板>系统和安全>Windows Defender 防火墙>自定义设置中。关闭调试电脑的防火墙功能；

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f13}
\caption{关闭防火墙功能}
\label{fig:a:ob_f13}
\end{figure}
\item 在调试电脑的CMD终端下，使用ping命令能正常与管理网口通讯，则说明管理网络工作正常。

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f14}
\caption{ping命令测试网络连通性}
\label{fig:a:ob_f14}
\end{figure}

\end{enumerate}


\subsection{搭建环境}

\subsubsection{测试二层交换功能}
\begin{enumerate}
\item 搭建二层交换拓扑

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f15}
\caption{二层交换连接拓扑示意图}
\label{fig:a:ob_f15}
\end{figure}

其中主机A的IP地址设置为192.168.1.111，主机B的IP地址设置为192.168.1.119。
\item 在OpenBox-S4上运行二层交换程序

　在串口登录界面或网络登录界面输入命令：l2switch，如下图所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f16}
\caption{二层交换命令启动输出图}
\label{fig:a:ob_f16}
\end{figure}

\item 在PC两端进行PING测试

在主机B的CMD (命令提示符) 程序中。输入并执行命令ping 192.168.1.111 即可测试两台主机之间的联通性。测试结果如下所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f17}
\caption{二端主机PING通结果图（二层交换）}
\label{fig:a:ob_f17}
\end{figure}

\end{enumerate}


\subsubsection{测试三层路由功能}
\begin{enumerate}
\item 搭建三层路由拓扑

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f18}
\caption{三层路由拓扑}
\label{fig:a:ob_f18}
\end{figure}

其中主机A的IP地址设置为192.168.0.111，主机B的IP地址设置为192.168.2.119。
\item OpenBox-S4上运行三层路由程序

　在串口登录界面或网络登录界面输入命令：l3router，如下图所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f19}
\caption{运行三层路由程序}
\label{fig:a:ob_f19}
\end{figure}

\item 在PC两端进行PING测试

在主机A的CMD (命令提示符) 程序中。输入并执行命令ping 192.168.2.119 即可测试跨路由功能。测试结果如下所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f20}
\caption{端主机PING通结果图（三层路由）}
\label{fig:a:ob_f20}
\end{figure}

\end{enumerate}


\subsubsection{测试SDN交换功能}
\begin{enumerate}
\item 搭建SDN交换拓扑

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f21}
\caption{SDN交换拓扑}
\label{fig:a:ob_f21}
\end{figure}

其中主机A的IP地址设置为192.168.2.111，主机B的IP地址设置为192.168.2.119。
\item 在192.168.1.3的主机中启动SDN控制器

　在终端命令行下输入 java –jar target/floodlight.jar，即启动floodlight控制器。如下所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f22}
\caption{启动floodlight控制器}
\label{fig:a:ob_f22}
\end{figure}

\item 在可编程网络平台上运行SDN交换程序

　在串口登录界面或网络登录界面输入命令：xofp -4 192.168.1.3 –i obx0,obx1,obx2,obx3 ， 连接Floodlight控制器。如下所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f23}
\caption{运行SDN交换程序}
\label{fig:a:ob_f23}
\end{figure}

\item 访问floodlight控制器首页

　在控制器主机打开浏览器，在浏览器地址栏输入：127.0.0.1:8080/ui/index.html ，访问floodlight控制器首页。界面如下所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f24}
\caption{访问floodlight控制器首页}
\label{fig:a:ob_f24}
\end{figure}

\item 在PC两端进行PING测试

在主机A的CMD (命令提示符) 程序中。输入并执行命令ping 192.168.2.119 即可测试两台主机之间的联通性。测试结果如下所示：

\begin{figure}[!htp]
\centering
\includegraphics[width=11cm]{f25}
\caption{端主机PING通结果图（SDN交换）}
\label{fig:a:ob_f25}
\end{figure}

\end{enumerate}



