bridge_port.c (164997) | bridge_port.c (165046) |
---|---|
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 * | 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 $ | 29 * $FreeBSD: head/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c 165046 2006-12-09 20:58:26Z 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 | 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: | 356 switch (op) { 357 case SNMP_OP_GET: 358 if (val->var.len - sub != 1) 359 return (SNMP_ERR_NOSUCHNAME); 360 if ((bp = bridge_port_find(val->var.subs[sub], 361 bif)) == NULL) 362 return (SNMP_ERR_NOSUCHNAME); 363 break; --- 12 unchanged lines hidden (view full) --- 376 val->var.subs[sub] = bp->port_no; 377 break; 378 379 case SNMP_OP_SET: 380 return (SNMP_ERR_NOT_WRITEABLE); 381 382 case SNMP_OP_ROLLBACK: 383 case SNMP_OP_COMMIT: |
384 default: |
|
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 | 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); | 424 switch (op) { 425 case SNMP_OP_GET: 426 if (val->var.len - sub != 1) 427 return (SNMP_ERR_NOSUCHNAME); 428 if ((bp = bridge_port_find(val->var.subs[sub], 429 bif)) == NULL) 430 return (SNMP_ERR_NOSUCHNAME); 431 break; --- 69 unchanged lines hidden (view full) --- 501 bridge_port_set_path_cost(bif->bif_name, bp, 502 ctx->scratch->int1); 503 break; 504 } 505 return (SNMP_ERR_NOERROR); 506 507 case SNMP_OP_COMMIT: 508 return (SNMP_ERR_NOERROR); |
509 510 default: 511 abort(); |
|
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 | 512 } 513 514 ret = SNMP_ERR_NOERROR; 515 switch (val->var.subs[sub - 1]) { 516 case LEAF_dot1dStpPort: 517 val->v.integer = bp->port_no; 518 break; 519 case LEAF_dot1dStpPortPriority: --- 40 unchanged lines hidden (view full) --- 560 561 if ((bif = bridge_get_default()) == NULL) 562 return (SNMP_ERR_NOSUCHNAME); 563 564 if (time(NULL) - bif->ports_age > bridge_get_data_maxage() && 565 bridge_update_memif(bif) <= 0) 566 return (SNMP_ERR_NOSUCHNAME); 567 |
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); | 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 default: 653 abort(); |
|
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 | 654 } 655 656 switch (val->var.subs[sub - 1]) { 657 case LEAF_dot1dStpPortProtocolMigration: 658 val->v.integer = bp->proto_migr; 659 break; 660 case LEAF_dot1dStpPortAdminEdgePort: 661 val->v.integer = bp->admin_edge; --- 24 unchanged lines hidden (view full) --- 686 687 if ((bif = bridge_get_default()) == NULL) 688 return (SNMP_ERR_NOSUCHNAME); 689 690 if (time(NULL) - bif->ports_age > bridge_get_data_maxage() && 691 bridge_update_memif(bif) <= 0) 692 return (SNMP_ERR_NOSUCHNAME); 693 |
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: | 694 switch (op) { 695 case SNMP_OP_GET: 696 if (val->var.len - sub != 1) 697 return (SNMP_ERR_NOSUCHNAME); 698 if ((bp = bridge_port_find(val->var.subs[sub], 699 bif)) == NULL) 700 return (SNMP_ERR_NOSUCHNAME); 701 break; --- 12 unchanged lines hidden (view full) --- 714 val->var.subs[sub] = bp->port_no; 715 break; 716 717 case SNMP_OP_SET: 718 return (SNMP_ERR_NOT_WRITEABLE); 719 720 case SNMP_OP_ROLLBACK: 721 case SNMP_OP_COMMIT: |
722 default: |
|
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; | 723 abort(); 724 } 725 726 switch (val->var.subs[sub - 1]) { 727 case LEAF_dot1dTpPort: 728 val->v.integer = bp->port_no; 729 break; 730 case LEAF_dot1dTpPortMaxInfo: --- 389 unchanged lines hidden (view full) --- 1120 return (SNMP_ERR_NOERROR); 1121} 1122 1123int 1124op_begemot_stp_port(struct snmp_context *ctx, struct snmp_value *val, 1125 uint sub, uint iidx __unused, enum snmp_op op) 1126{ 1127 int ret; |
1125 struct bridge_port *bp = NULL; | 1128 struct bridge_port *bp; |
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); | 1129 const char *b_name; 1130 1131 if (time(NULL) - ports_list_age > bridge_get_data_maxage()) 1132 bridge_update_all_ports(); 1133 1134 switch (op) { 1135 case SNMP_OP_GET: 1136 if ((bp = bridge_port_index_get(&val->var, sub, 0)) == NULL) --- 62 unchanged lines hidden (view full) --- 1199 bridge_port_set_path_cost(b_name, bp, 1200 ctx->scratch->int1); 1201 break; 1202 } 1203 return (SNMP_ERR_NOERROR); 1204 1205 case SNMP_OP_COMMIT: 1206 return (SNMP_ERR_NOERROR); |
1207 1208 default: 1209 abort(); |
|
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; | 1210 } 1211 1212 ret = SNMP_ERR_NOERROR; 1213 switch (val->var.subs[sub - 1]) { 1214 case LEAF_begemotBridgeStpPort: 1215 val->v.integer = bp->port_no; 1216 break; 1217 case LEAF_begemotBridgeStpPortPriority: --- 28 unchanged lines hidden (view full) --- 1246 return (ret); 1247} 1248 1249int 1250op_begemot_stp_ext_port(struct snmp_context *ctx, struct snmp_value *val, 1251 uint sub, uint iidx __unused, enum snmp_op op) 1252{ 1253 int ret; |
1248 struct bridge_port *bp = NULL; | 1254 struct bridge_port *bp; |
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); | 1255 const char *b_name; 1256 1257 if (time(NULL) - ports_list_age > bridge_get_data_maxage()) 1258 bridge_update_all_ports(); 1259 1260 switch (op) { 1261 case SNMP_OP_GET: 1262 if ((bp = bridge_port_index_get(&val->var, sub, 0)) == NULL) --- 60 unchanged lines hidden (view full) --- 1323 bridge_port_set_path_cost(b_name, bp, 1324 ctx->scratch->int1); 1325 break; 1326 } 1327 return (SNMP_ERR_NOERROR); 1328 1329 case SNMP_OP_COMMIT: 1330 return (SNMP_ERR_NOERROR); |
1331 1332 default: 1333 abort(); |
|
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{ | 1334 } 1335 1336 switch (val->var.subs[sub - 1]) { 1337 case LEAF_begemotBridgeStpPortProtocolMigration: 1338 val->v.integer = bp->proto_migr; 1339 break; 1340 case LEAF_begemotBridgeStpPortAdminEdgePort: 1341 val->v.integer = bp->admin_edge; --- 14 unchanged lines hidden (view full) --- 1356 1357 return (SNMP_ERR_NOERROR); 1358} 1359 1360int 1361op_begemot_tp_port(struct snmp_context *c __unused, struct snmp_value *val, 1362 uint sub, uint iidx __unused, enum snmp_op op) 1363{ |
1355 struct bridge_port *bp = NULL; | 1364 struct bridge_port *bp; |
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: | 1365 1366 if (time(NULL) - ports_list_age > bridge_get_data_maxage()) 1367 bridge_update_all_ports(); 1368 1369 switch (op) { 1370 case SNMP_OP_GET: 1371 if ((bp = bridge_port_index_get(&val->var, sub, 0)) == NULL) 1372 return (SNMP_ERR_NOSUCHNAME); --- 5 unchanged lines hidden (view full) --- 1378 return (SNMP_ERR_NOSUCHNAME); 1379 break; 1380 1381 case SNMP_OP_SET: 1382 return (SNMP_ERR_NOT_WRITEABLE); 1383 1384 case SNMP_OP_ROLLBACK: 1385 case SNMP_OP_COMMIT: |
1377 return (SNMP_ERR_NOERROR); | 1386 default: 1387 abort(); |
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 --- | 1388 } 1389 1390 switch (val->var.subs[sub - 1]) { 1391 case LEAF_begemotBridgeTpPort: 1392 val->v.integer = bp->port_no; 1393 break; 1394 case LEAF_begemotBridgeTpPortMaxInfo: 1395 val->v.integer = bp->max_info; --- 14 unchanged lines hidden --- |