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 概念之前, ...
随机推荐
- SEO定义目的,优化的好处
SEO:search engine optimization(搜索引擎优化) SEO严谨的定义:SEO是指在了解搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中关键字 ...
- Redis6-sorted set 的介绍
Sort Set排序集合类型(1)介绍和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个权.通过权值可以有序的获取集合中的元素该Sort Set类型适合场合: ...
- PLSQL 几种游标的用法
分类: Oracle 1. PL/SQL里的游标可以分为显式和隐式两种,而隐式有分为select into隐式游标和for .. in 隐式游标两种.所以,我们可以认为,有3种游标用法: A. 显式游 ...
- struts2.3 创建工程
1:在该网站下载struts2.3.16.3,目前为最新版.http://www.struts.apache.org/download.cgi 不妨下载“Full Distribution”版本 下载 ...
- php 常用的调试方法
file_put_contents("c:\1.log","输出字符串",FILE_APPEND);第三个参数是防止前面的内容被覆盖 error_log(pri ...
- JVM保证线程安全
线程安全 Java内存模型中,程序(进程)拥有一块内存空间,可以被所有的线程共享,即MainMemory(主内存):而每个线程又有一块独立的内存空间,即WorkingMemory(工作内存).普通情 ...
- HDU 1331 Function Run Fun(记忆化搜索)
Problem Description We all love recursion! Don't we? Consider a three-parameter recursive function w ...
- javascript基础(二)类型转换
原文http://pij.robinqu.me/ 类型转换 当期望使用一个布尔值的时候,可以提供任意类型值,JavaScript将根据需要自行转换类型.类型转换可以分为隐式转换和显式转换. 显式转换 ...
- Java Object 对象创建的方式 [ 转载 ]
Java Object 对象创建的方式 [ 转载 ] @author http://blog.csdn.net/mhmyqn/article/details/7943411 显式创建 有4种显式地创建 ...
- 经典dp 编辑距离
给定两个字符串S和T,对于T我们可以进行三种操作 (1)在任意位置增加字符 (2)删除字符 (3)替换字符 问最少多少次能把T变成S? 设f(i,j)是S的前i位和T的前j位对齐的最小花费 接下来分析 ...