lldp中与snmp相关内容agentx
struct lldpd {
int g_snmp;
struct event *g_snmp_timeout;
void *g_snmp_fds;
char *g_snmp_agentx;
}
lldpd_main()
{
struct lldpd *cfg;
// 初始化snmp相关参数
int snmp = 0;
char *agentx = NULL; /* AgentX socket */
// lldpd进程支持的参数
char *popt, opts[] = "H:vhkrdD:xX:m:u:4:6:I:C:p:M:P:S:iL:@ ";
// 对参数进行解析
while ((ch = getopt(argc, argv, opts)) != -1) {
switch (ch) {
// 是否启用agentX
case 'x':
snmp = 1;
break;
case 'X':
snmp = 1;
agentx = optarg;
break;
// 是否启用lldpcli
case 'L':
if (strlen(optarg))
lldpcli = optarg;
else
lldpcli = NULL;
}
cfg->g_snmp = snmp;
cfg->g_snmp_agentx = agentx;
}
static void levent_init(struct lldpd *cfg)
{
if (cfg->g_snmp) {
// 注册agentx
agent_init(cfg, cfg->g_snmp_agentx);
// 设置定时器
cfg->g_snmp_timeout = evtimer_new(cfg->g_base, levent_snmp_timeout, cfg);
if (!cfg->g_snmp_timeout)
fatalx("unable to setup timeout function for SNMP");
if ((cfg->g_snmp_fds = malloc(sizeof(struct ev_l))) == NULL)
fatalx("unable to allocate memory for SNMP events");
TAILQ_INIT(levent_snmp_fds(cfg));
}
}
void levent_loop(struct lldpd *cfg) {
// 更新snmp socket通信相关
if (cfg->g_snmp)
levent_snmp_update(cfg);
// 关闭agetnx
if (cfg->g_snmp)
agent_shutdown();
}
static void usage(void)
{
fprintf(stderr, "-x Enable SNMP subagent.\n");
}
static void notify_clients_deletion(struct lldpd_hardware *hardware,struct lldpd_port *rport)
{
agent_notify(hardware, NEIGHBOR_CHANGE_DELETED, rport);
}
static void lldpd_decode(struct lldpd *cfg, char *frame, int s,struct lldpd_hardware *hardware)
{
if (oport) {
agent_notify(hardware, NEIGHBOR_CHANGE_UPDATED, port);
} else {
agent_notify(hardware, NEIGHBOR_CHANGE_ADDED, port);
}
}
lldp中与snmp相关内容agentx的更多相关文章
- linux中Makefile文件相关内容
第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,m ...
- SharePoint安全 - 在Goolge和Bing中查找SharePoint相关内容
博客地址 http://blog.csdn.net/foxdave 本篇提供两个查询串字典,分别对应Google和Bing的搜索,用来查询SharePoint网站的相关内容 Google ShareP ...
- Delphi XE8帮助中的REST相关内容。
Delphi XE8的离线帮助是我见过的最好的Delphi帮助文档了,内容相当详细和丰富,几乎涵盖了Delphi的方方面面!! Delphi XE8的帮助文档在哪里?“XE8安装目录\Help\Doc ...
- 【你不知道的javaScript 上卷 笔记6】javaScript中的对象相关内容
一.创建一个对象的语法 var myObj = { key: value // ... };//字面量 var myObj = new Object(); //new myObj.key = valu ...
- Binary Search 的递归与迭代实现及STL中的搜索相关内容
与排序算法不同,搜索算法是比较统一的,常用的搜索除hash外仅有两种,包括不需要排序的线性搜索和需要排序的binary search. 首先介绍一下binary search,其原理很直接,不断地选取 ...
- C/C++中的字符串相关姿势
这是我在<程序设计实习>课程上作的pre,目标是对C/C++中字符串的相关内容作一个尽量完整的介绍.(对于OIer可能不太实用) 课件链接: https://files.cnblogs.c ...
- 在地图中调用显示FeatureLayer并进行render、popupTemplate、添加图例等相关内容的设置
ArcGIS Server发布完FeatureLayer后,就可以在自己的代码中调用并在地图上显示出来了. 一.代码框架 调用FeatureLayer,要在require开头引入"esri/ ...
- Wireshark中的一些SNMP相关的过滤器
Wireshark中的一些SNMP相关的过滤器 转自 http://linmingren2003.blog.163.com/blog/static/567510032011419825097/ 由 ...
- (转)浅谈 Linux 系统中的 SNMP Trap
原文:https://www.ibm.com/developerworks/cn/linux/l-cn-snmp/index.html 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前, ...
随机推荐
- 淘淘商城_day08_课堂笔记
今日大纲 问题,如何实现商品数据的同步? 学习MQ(消息队列) 搭建RabbitMQ的环境 学习RabbitMQ的队列 学习Spring-Rabbit 使用RabbitMQ完成商品数据的同步 如何实现 ...
- Java web项目综合练习(Estore)
Java web项目综合练习(Estore) 复习day18: ajax代码的书写步骤 2)json格式文本,转js对象的方法是那个 项目开发流程介绍 这里学习的JavaWEB项目实战,主要是把前面学 ...
- Storm常见模式——批处理
Storm对流数据进行实时处理时,一种常见场景是批量一起处理一定数量的tuple元组,而不是每接收一个tuple就立刻处理一个tuple,这样可能是性能的考虑,或者是具体业务的需要. 例如,批量查询或 ...
- 《JS权威指南学习总结--第八章 函数》
内容要点: 一.JS函数是参数化的:函数的定义会包括一个称为形参的标识符列表,这些参数在函数体中像局部变量一样工作.函数调用会为形参提供实参的值.函数使用它们实参的值来计算返回值,成为该函数调用表达式 ...
- 一个ubuntu命令
curl 获取web curl www.baidu.com
- linshi_temp_erweima_html_backup
<!doctype html><html><head><meta charset="utf-8"><meta content= ...
- java 操作redis
使用Java操作Redis需要jedis-2.1.0.jar,如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar package com.test; import ja ...
- mysql解决中文乱码问题
安装文件 my.ini default-character-set=gbk 安装文件 db.opt default-character-set=gbkdefault-collation=gbk_chi ...
- Ajax中参数带有html格式的 传入后台保存【一】
因业务需求 要讲如下编辑器中带有样式的数据传入数据库保存 第一种方法 json格式传入 $(".privilegezn_page .btn_ok").click(functio ...
- HDU 2209 翻纸牌游戏(DFS)
题目链接 Problem Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦 ...