opendaylight中statisticsmanager模块的学习

这个模块定义了一些方法,用来获取网络中node的一些统计数据


List<FlowOnNode> getFlows(Node node);  //获取指定节点上的所有流数据

List<FlowOnNode> getFlowsNoCache(Node node);//功能同上,但不包含缓存的流

Map<Node, List<FlowOnNode>> getFlowStatisticsForFlowList(List<FlowEntry> flows);//获取流链表中指定流的统计数据


int getFlowsNumber(Node node);//获取指定节点上当前的留数目

NodeDescription getNodeDescription(Node node);//获取指定节点的节点描述

NodeConnectorStatistics getNodeConnectorStatistics(NodeConnector nodeConnector) //返回指定nodeconnector的统计数据

List<NodeConnectorStatistics> getNodeConnectorStatistics(Node node);//指定节点上所有nodeconnector的统计数据链表

NodeTableStatistics getNodeTableStatistics(NodeTable nodeTable);  //获取指定nodetale上的统计数据

List <NodeTableStatistics> getNodeTableStatistics(Node node);             //获取指定节点上的所有nodetable统计数据链表



延伸数据结构:

FlowOnNode类:node上的flow信息

成员变量

    private Flow flow;   //流
    private byte tableId;  //表ID
    private int durationSeconds //停留时间;
    private int durationNanoseconds; //
    private long packetCount; //数据包的数量
    private long byteCount; //字节数

部分函数:

public FlowOnNode()//构造

 public FlowOnNode(Flow flow)//构造函数

 public Flow getFlow()//获取流

 public void setPacketCount(long count)

 public void setByteCount(long count) 

 public long getPacketCount()

 public long getByteCount()

 public byte getTableId() 

 public void setTableId(byte tableId) 

public int getDurationSeconds()

public void setDurationSeconds(int durationSeconds)

public int getDurationNanoseconds()

public void setDurationNanoseconds(int durationNanoseconds)

flow类:match+action+ flow specific properties

成员变量

    private Match match; //匹配项
    private List<Action> actions;//动作链表
    private short priority;   //优先级
    private short idleTimeout; //
    private short hardTimeout;
    private long id;   //ID号,流的唯一标识符

部分函数:

public Flow()

public Flow(Match match, List<Action> actions)//构造函数

public Match getMatch()//获取匹配项

public void setMatch(Match match)//设置匹配

public List<Action> getActions()//获取动作链表

public void setActions(List<Action> actions)//设置动作链表

public boolean isIPv6()//判断流是否匹配ipv6

private boolean actionsAreIPv6() //流的动作链表中有一个是针对ipv6的返回true

public Flow clone()//克隆流

public boolean removeAction(ActionType actionType) //删除这条流的所有actionType类型的动作

...  其他获取、设置相关参数的函数


MatchType枚举类型:在ID、值、掩码类型、和元素类型值得范围之间绑定。

有:inport、dlsrc 、dldsc等。


private String id;

private int index;

 private Class<?> dataType;

 private long minValue;

 private long maxValue;

 public boolean isCongruentType(Object value, Object mask)//验证类型

 public boolean isValid(Object value, Object mask)//验证范围的合理性

public long getBitMask(Object mask)//将掩码值返回以64bit的比特掩码形式

MatchField类:通用的匹配字段

 private MatchType type; // the field we want to match
 private Object value; // the value of the field we want to match
 private Object mask; // the value of the mask we want to match on the specified field
 private boolean isValid;

 public MatchField(MatchType type, Object value, Object mask)//基于mask的匹配构造

 public MatchField(MatchType type, Object value)//全匹配构造



Match类:   对网络层数据包的匹配标准,包含一个匹配域的集合

 private Map<MatchType, MatchField> fields;
    private int matches; 

public void setField(MatchType type, Object value, Object mask)//匹配字段的设置

public void setField(MatchType type, Object value)//匹配字段的设置

 public void setField(MatchField field)//匹配字段的设置

 public void clearField(MatchType type) //从匹配中清除字段域

 public MatchField getField(MatchType type)//获取matchfield

 public List<MatchType> getMatchesList() //match设置的字段中matchtype的链表

 public List<MatchField> getMatchFields()//matchfield的链表


Action类:通用的用来匹配后执行的动作

 protected ActionType type;
 private transient boolean isValid = true;


protected void checkValue(int value)//检查传的参数值是否是此action的范围

protected void checkValue(ActionType type, int value)//同上







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值