Deleted Added
sdiff udiff text old ( 164997 ) new ( 165046 )
full compact
1/*-
2 * Copyright (c) 2006 Shteryana Shopova <syrinx@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 12 unchanged lines hidden (view full) ---

21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * Bridge MIB implementation for SNMPd.
27 * Bridge ports.
28 *
29 * $FreeBSD: head/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c 164997 2006-12-07 22:36:17Z syrinx $
30 */
31
32#include <sys/queue.h>
33#include <sys/socket.h>
34#include <sys/types.h>
35
36#include <net/ethernet.h>
37#include <net/if.h>

--- 310 unchanged lines hidden (view full) ---

348
349 if ((bif = bridge_get_default()) == NULL)
350 return (SNMP_ERR_NOSUCHNAME);
351
352 if (time(NULL) - bif->ports_age > bridge_get_data_maxage() &&
353 bridge_update_memif(bif) <= 0)
354 return (SNMP_ERR_NOSUCHNAME);
355
356 bp = NULL; /* Make the compiler happy. */
357 switch (op) {
358 case SNMP_OP_GET:
359 if (val->var.len - sub != 1)
360 return (SNMP_ERR_NOSUCHNAME);
361 if ((bp = bridge_port_find(val->var.subs[sub],
362 bif)) == NULL)
363 return (SNMP_ERR_NOSUCHNAME);
364 break;

--- 12 unchanged lines hidden (view full) ---

377 val->var.subs[sub] = bp->port_no;
378 break;
379
380 case SNMP_OP_SET:
381 return (SNMP_ERR_NOT_WRITEABLE);
382
383 case SNMP_OP_ROLLBACK:
384 case SNMP_OP_COMMIT:
385 abort();
386 }
387
388 switch (val->var.subs[sub - 1]) {
389 case LEAF_dot1dBasePort:
390 val->v.integer = bp->port_no;
391 break;
392 case LEAF_dot1dBasePortIfIndex:

--- 23 unchanged lines hidden (view full) ---

416
417 if ((bif = bridge_get_default()) == NULL)
418 return (SNMP_ERR_NOSUCHNAME);
419
420 if (time(NULL) - bif->ports_age > bridge_get_data_maxage() &&
421 bridge_update_memif(bif) <= 0)
422 return (SNMP_ERR_NOSUCHNAME);
423
424 bp = NULL; /* Make the compiler happy. */
425
426 switch (op) {
427 case SNMP_OP_GET:
428 if (val->var.len - sub != 1)
429 return (SNMP_ERR_NOSUCHNAME);
430 if ((bp = bridge_port_find(val->var.subs[sub],
431 bif)) == NULL)
432 return (SNMP_ERR_NOSUCHNAME);
433 break;

--- 69 unchanged lines hidden (view full) ---

503 bridge_port_set_path_cost(bif->bif_name, bp,
504 ctx->scratch->int1);
505 break;
506 }
507 return (SNMP_ERR_NOERROR);
508
509 case SNMP_OP_COMMIT:
510 return (SNMP_ERR_NOERROR);
511 }
512
513 ret = SNMP_ERR_NOERROR;
514 switch (val->var.subs[sub - 1]) {
515 case LEAF_dot1dStpPort:
516 val->v.integer = bp->port_no;
517 break;
518 case LEAF_dot1dStpPortPriority:

--- 40 unchanged lines hidden (view full) ---

559
560 if ((bif = bridge_get_default()) == NULL)
561 return (SNMP_ERR_NOSUCHNAME);
562
563 if (time(NULL) - bif->ports_age > bridge_get_data_maxage() &&
564 bridge_update_memif(bif) <= 0)
565 return (SNMP_ERR_NOSUCHNAME);
566
567 bp = NULL; /* Make the compiler happy. */
568 switch (op) {
569 case SNMP_OP_GET:
570 if (val->var.len - sub != 1)
571 return (SNMP_ERR_NOSUCHNAME);
572 if ((bp = bridge_port_find(val->var.subs[sub],
573 bif)) == NULL)
574 return (SNMP_ERR_NOSUCHNAME);
575 break;

--- 67 unchanged lines hidden (view full) ---

643 bridge_port_set_path_cost(bif->bif_name, bp,
644 ctx->scratch->int1);
645 break;
646 }
647 return (SNMP_ERR_NOERROR);
648
649 case SNMP_OP_COMMIT:
650 return (SNMP_ERR_NOERROR);
651 }
652
653 switch (val->var.subs[sub - 1]) {
654 case LEAF_dot1dStpPortProtocolMigration:
655 val->v.integer = bp->proto_migr;
656 break;
657 case LEAF_dot1dStpPortAdminEdgePort:
658 val->v.integer = bp->admin_edge;

--- 24 unchanged lines hidden (view full) ---

683
684 if ((bif = bridge_get_default()) == NULL)
685 return (SNMP_ERR_NOSUCHNAME);
686
687 if (time(NULL) - bif->ports_age > bridge_get_data_maxage() &&
688 bridge_update_memif(bif) <= 0)
689 return (SNMP_ERR_NOSUCHNAME);
690
691 bp = NULL; /* Make the compiler happy. */
692 switch (op) {
693 case SNMP_OP_GET:
694 if (val->var.len - sub != 1)
695 return (SNMP_ERR_NOSUCHNAME);
696 if ((bp = bridge_port_find(val->var.subs[sub],
697 bif)) == NULL)
698 return (SNMP_ERR_NOSUCHNAME);
699 break;

--- 12 unchanged lines hidden (view full) ---

712 val->var.subs[sub] = bp->port_no;
713 break;
714
715 case SNMP_OP_SET:
716 return (SNMP_ERR_NOT_WRITEABLE);
717
718 case SNMP_OP_ROLLBACK:
719 case SNMP_OP_COMMIT:
720 abort();
721 }
722
723 switch (val->var.subs[sub - 1]) {
724 case LEAF_dot1dTpPort:
725 val->v.integer = bp->port_no;
726 break;
727 case LEAF_dot1dTpPortMaxInfo:

--- 389 unchanged lines hidden (view full) ---

1117 return (SNMP_ERR_NOERROR);
1118}
1119
1120int
1121op_begemot_stp_port(struct snmp_context *ctx, struct snmp_value *val,
1122 uint sub, uint iidx __unused, enum snmp_op op)
1123{
1124 int ret;
1125 struct bridge_port *bp = NULL;
1126 const char *b_name;
1127
1128 if (time(NULL) - ports_list_age > bridge_get_data_maxage())
1129 bridge_update_all_ports();
1130
1131 switch (op) {
1132 case SNMP_OP_GET:
1133 if ((bp = bridge_port_index_get(&val->var, sub, 0)) == NULL)

--- 62 unchanged lines hidden (view full) ---

1196 bridge_port_set_path_cost(b_name, bp,
1197 ctx->scratch->int1);
1198 break;
1199 }
1200 return (SNMP_ERR_NOERROR);
1201
1202 case SNMP_OP_COMMIT:
1203 return (SNMP_ERR_NOERROR);
1204 }
1205
1206 ret = SNMP_ERR_NOERROR;
1207 switch (val->var.subs[sub - 1]) {
1208 case LEAF_begemotBridgeStpPort:
1209 val->v.integer = bp->port_no;
1210 break;
1211 case LEAF_begemotBridgeStpPortPriority:

--- 28 unchanged lines hidden (view full) ---

1240 return (ret);
1241}
1242
1243int
1244op_begemot_stp_ext_port(struct snmp_context *ctx, struct snmp_value *val,
1245 uint sub, uint iidx __unused, enum snmp_op op)
1246{
1247 int ret;
1248 struct bridge_port *bp = NULL;
1249 const char *b_name;
1250
1251 if (time(NULL) - ports_list_age > bridge_get_data_maxage())
1252 bridge_update_all_ports();
1253
1254 switch (op) {
1255 case SNMP_OP_GET:
1256 if ((bp = bridge_port_index_get(&val->var, sub, 0)) == NULL)

--- 60 unchanged lines hidden (view full) ---

1317 bridge_port_set_path_cost(b_name, bp,
1318 ctx->scratch->int1);
1319 break;
1320 }
1321 return (SNMP_ERR_NOERROR);
1322
1323 case SNMP_OP_COMMIT:
1324 return (SNMP_ERR_NOERROR);
1325 }
1326
1327 switch (val->var.subs[sub - 1]) {
1328 case LEAF_begemotBridgeStpPortProtocolMigration:
1329 val->v.integer = bp->proto_migr;
1330 break;
1331 case LEAF_begemotBridgeStpPortAdminEdgePort:
1332 val->v.integer = bp->admin_edge;

--- 14 unchanged lines hidden (view full) ---

1347
1348 return (SNMP_ERR_NOERROR);
1349}
1350
1351int
1352op_begemot_tp_port(struct snmp_context *c __unused, struct snmp_value *val,
1353 uint sub, uint iidx __unused, enum snmp_op op)
1354{
1355 struct bridge_port *bp = NULL;
1356
1357 if (time(NULL) - ports_list_age > bridge_get_data_maxage())
1358 bridge_update_all_ports();
1359
1360 switch (op) {
1361 case SNMP_OP_GET:
1362 if ((bp = bridge_port_index_get(&val->var, sub, 0)) == NULL)
1363 return (SNMP_ERR_NOSUCHNAME);

--- 5 unchanged lines hidden (view full) ---

1369 return (SNMP_ERR_NOSUCHNAME);
1370 break;
1371
1372 case SNMP_OP_SET:
1373 return (SNMP_ERR_NOT_WRITEABLE);
1374
1375 case SNMP_OP_ROLLBACK:
1376 case SNMP_OP_COMMIT:
1377 return (SNMP_ERR_NOERROR);
1378 }
1379
1380 switch (val->var.subs[sub - 1]) {
1381 case LEAF_begemotBridgeTpPort:
1382 val->v.integer = bp->port_no;
1383 break;
1384 case LEAF_begemotBridgeTpPortMaxInfo:
1385 val->v.integer = bp->max_info;

--- 14 unchanged lines hidden ---