NAME
Device::ZyXEL::IES::Port - A model of a Port on a Slot on an IES.
VERSION
Version 0.10
SYNOPSIS
Models a port on a ZyXEL IES Device.
Based on Moose.
# Must have a Device::Zyxel::IES::Slot object
my $p = Device::ZyXEL::IES::Port( id => 301, slot => $s );
my $adminstatus = $p->read_adminstatus();
# $adminstatus is now the same as $p->adminstatus();
# DOWN the port
$p->adminstatus(1);
MOOSE ATTRIBUTES
id
Required attribute that identifies the port. Matches ifIndex.
slot
Required attribute that isa Device::ZyXEL::IES::Slot object.
adminstatus (rw)
ifAdminStatus on the port. Read from IES using read_adminstatus
operstatus (ro)
ifOperStatus on the port. Read from IES using read_operstatus
uptime (ro)
uptime on the port. Read from IES using read_uptime
profile (rw)
Configuration profile on the port. This attribute OID will depend on the type of xDSL interface of the port.
ifInOctets (ro)
the ifInOctets on the port. Note that if this conglomorate of modules is used to systematically read and record (say using RRD) values, you might expience trouble with cpu load on the IES. (See Device::ZyXEL::IES)
Retrieve a value for this attribute from the IES using read_ifInOctets
ifOutOctets (ro)
the ifOutOctets on the port. Note that if this conglomorate of modules is used to systematically read and record (say using RRD) values, you might expience trouble with cpu load on the IES. (See Device::ZyXEL::IES)
Retrieve a value for this attribute from the IES using read_ifOutOctets
userinfo (ro)
Contains the userinfo OID value from the IES.
Retrieve userinfo from the IES Port using read_userinfo
ifLastChange (ro)
Contains the ifLastChange OID value from the IES.
Retrieve a value from the IES Port using read_ifLastChange.
This attribute can be used to calculate the uptime of the port.
maxmac (rw)
Contains the maxmac setting from the IES.
Retrieve the maxmac value from the IES Port using read_maxmac, before that the value of this attribute will not reflect reality.
The maxmac setting is used by the IES in conjunction with the Snoop feature to ensure a maximum number of MAC address pr port.
maxdown (ro)
Contains the maxAttainableDownstream setting from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
maxup (ro)
Contains the maxAttainableUpstream setting from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
downspeed (ro)
Contains the currAttainableDownstream setting from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
upspeed (ro)
Contains the currAttainableUpstream setting from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
snr_down (ro)
Contains the SNR on the Downstream channel from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
snr_up (ro)
Contains the SNR on the Upstream channel from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
atn_down (ro)
Contains the current Attenautaion Downstream setting from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
atn_up (ro)
Contains the current Attenautaion Upstream setting from the IES.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
inp_down (rw)
Contains the current impulse noise protection level on the Downstream channel.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
inp_up (rw)
The upstream Impulse Noise Protection minimum setting in unit of DMT symbol.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
annexM (rw)
The ADSL Annex M setting.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
annexL (rw)
The ADSL Annex L setting.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
wirepairmode (ro)
The S.HDSL Wirepair Mode setting.
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
vdslprotocol (ro)
The VDSL Protocol Mode setting.
One of
none(1),
vdsl_8a(2),
vdsl_8b(3),
vdsl_8c(4),
vdsl_8d(5),
vdsl_12a(6),
vdsl_12b(7),
vdsl_17a(8),
vdsl_30a(9),
adsl2plus(10)
This attribute depends on the interface type, as determined by the assiciated Device::ZyXEL::IES::Slot object.
hlog_near (ro)
hlog data for the near end (dlsam)
This attribute depends on the interface type.
For ADSL it will contain an array of values between -32767 and 32768, with -32767 being special, meaning "no measurement".
For VDSL the "no measurement" value is 1023.
Values for all interface types are dB.
hlog_near_grpsize
In ADSL the group size (how many carriers are average over pr hlog value) is always one. In VDSL this is set by the dslam firmware.
hlog_far (ro)
hlog data for the far end (cpe)
This attribute depends on the interface type.
For ADSL it will contain an array of values between -32767 and 32768, with -32767 being special, meaning "no measurement".
For VDSL the "no measurement" value is 1023.
Values for all interface types are dB.
hlog_far_grpsize
In ADSL the group size (how many carriers are average over pr hlog value) is always one. In VDSL this is set by the dslam firmware.
qln_near (ro)
qln data for the near end (dlsam)
This attribute depends on the interface type.
For ADSL it will contain an array of values between -32767 and 32768, with -32767 being special, meaning "no measurement".
For VDSL the "no measurement" value is 255.
Values for all interface types are dB.
qln_near_grpsize
In ADSL the group size (how many carriers are average over pr qln value) is always one. In VDSL this is set by the dslam firmware.
qln_far (ro)
qln data for the far end (cpe)
This attribute depends on the interface type.
For ADSL it will contain an array of values between -32767 and 32768, with -32767 being special, meaning "no measurement".
For VDSL the "no measurement" value is 255.
Values for all interface types are dB.
qln_far_grpsize
In ADSL the group size (how many carriers are average over pr qln value) is always one. In VDSL this is set by the dslam firmware.
snr_near (ro)
snr data for the near end (dlsam)
This attribute depends on the interface type.
For ADSL it will contain nothing.
For VDSL the "no measurement" value is 255.
Values for all interface types are dB.
snr_near_grpsize
The number of carriers grouped together for each snr value.
snr_far (ro)
snr data for the far end (cpe)
This attribute depends on the interface type.
For ADSL it will contain nothing.
For VDSL the "no measurement" value is 255.
Values for all interface types are dB.
snr_far_grpsize
The number of carriers grouped together for each snr value.
seltStatus
Contains the status of a SELT operation on the port.
seltCableType
Contains the cable type reported by the IES as a result of a SELT operation.
1 => 'awg24'
2 => 'awg26'
seltLoopEstimateLengthFt
Contains the IES estimate of the loop length in Feet.
seltLoopEstimateLengthMeter
Contains the IES estimate of the loop length in Meters.
dhcpDiscovery
Contains the number of dhcp discoveries on the port.
dhcpOffer
Contains the number of dhcp offer on the port.
dhcpRequest
Contains the number of dhcp request on the port.
dhcpAck
Contains the number of dhcp ack on the port.
dhcpAckBySnoopFull
Contains the number of dhcp ack on the port.
METHODS
BUILD
When the object is created, we need to create an instance of the oid translater.
write_oid
Used (mainly internally) to write a new value into the specified OID on the IES.
Params: $oidname: Symbolic name of the OID, translated through mib files or statically through OID.pm $type: An SNMP type, i.e. OCTET_STRING, INTEGER aso, imported by Net::SNMP asn1 $value: <the value to set> $actual: 1 => the oid indcated by oidname, and translated to an actual oid is the actual final one 0 => Append port ID to the oid before setting
Returns: a status string indicating the result.
read_oid
Uses Net::SNMP::Util to read the value of an oid for a specific slot.
read_operstatus
Asks the IES for OperStatus on the port.
read_uptime
Asks the IES for uptime on the port.
read_profile
Asks the IES for profile on the port.
write_profile
read_ifInOctets
Asks the IES for ifInOctets on the port.
read_ifOutOctets
Asks the IES for ifOutOctets on the port.
read_ifLastChange
Asks the IES for ifLastChange on the port.
read_maxmac
Asks the IES for maxmac on the port.
write_maxmac
Sets the macFilterPortMacCount value in the dslam, and the value of the attribute here.
read_adminstatus
Asks the IES for OperStatus on the port.
write_adminstatus
Sets ifAdminStatus on the Port on the device.
read_userinfo
Asks the IES for userinfo on the port.
readIfType
Retrieves the ifType [ADSL, VDSL, SHDSL] from the associated slot object. If cardtype (which determines the ifType) is not previosly read from the dslam, and present in the object, it start by reading the cardtype from the IES.
read_maxdown
Asks the IES for max attainable downstream speed on the port.
Different OID's for different slot types, determined by the slot cardtype.
read_maxup
Asks the IES for maximum attainable speed upstream on the port.
Different OID's for different slot types, determined by the slot cardtype.
read_downspeed
Asks the IES for the current downstream speed on the port.
Different OID's for different slot types, determined by the slot cardtype.
read_upspeed
Asks the IES for current upstream speed on the port.
Different OID's for different slot types, determined by the slot cardtype.
read_snrdown
Asks the IES for the SNR for the downstream channel on the port.
Network side in case of SHDSL.
Different OID's for different slot types, determined by the slot cardtype.
read_snrup
Asks the IES for SNR Margin on the upstream channel on the port.
Customer side in case of SHDSL.
Different OID's for different slot types, determined by the slot cardtype.
read_atndown
Asks the IES for the Attenaution for the downstream channel on the port.
Network side in case of SHDSL.
Different OID's for different slot types, determined by the slot cardtype.
read_atnup
Asks the IES for Attenaution on the upstream channel on the port.
Customer side in case of SHDSL.
Different OID's for different slot types, determined by the slot cardtype.
read_inpdown
Asks the IES for the Impulse Noice Protection level for the downstream channel on the port.
Different OID's for different slot types, determined by the slot cardtype.
write_inpdown
Set the INP value in the device, and sets the attribute upon succes.
read_inpup
Asks the IES for the Impulse Noice Protection level for the upstream channel on the port.
Different OID's for different slot types, determined by the slot cardtype.
write_inpup
read_annexM
Asks the IES for the Annex M setting for the ADSL port.
Different OID's for different slot types, determined by the slot cardtype.
write_annexM
Sets the annexM value on the port on the IES.
read_annexL
Asks the IES for the Annex L setting for the ADSL port.
Different OID's for different slot types, determined by the slot cardtype.
write_annexL
Sets the annexL value on the port on the IES.
read_wirepairmode
Asks the IES for the S.HDSL Wirepair mode of the port.
Different OID's for different slot types, determined by the slot cardtype.
read_vdslprotocol
Asks the IES for the actual VDSL protocol used on the port
Different OID's for different slot types, determined by the slot cardtype.
read_hlog_near
Asks the dslam for the near end part (dslam side) of the hlog data.
Finds the correct oids to ask for, depending on the ifType
read_hlog_far
Asks the dslam for the far end part (cpe side) of the hlog data.
Finds the correct oids to ask for, depending on the ifType
read_qln_near
Asks the dslam for the near end part (dslam side) of the qln data.
Finds the correct oids to ask for, depending on the ifType
read_qln_far
Asks the dslam for the far end part (cpe side) of the qln data.
Finds the correct oids to ask for, depending on the ifType
read_snr_near
Asks the dslam for the downstream part of the snr data.
read_snr_far
Asks the dslam for the upstream part of the snr data.
write_selt_begin
Sets the SeltOps thus initiating the SELT procedure on the port.
read_selt_results
Attempts to fetch the results of a SELT operation on the port.
Stores fetched values in the corresponding port attributes.
read_dhcp_stats
Fetches the number of DHCPDISCOVER,-OFFER,-REQUEST and -ACK from the IES DHCP relay feature.
Params: None
Returns: Hash containing values for DISCOVER,OFFER,REQUEST,ACK and ACKBYSNOOPFULL
read_snoop_iplist
Retrieves the list of IP-Mac combination in the snoop table
for a given port.
read_es_interval
Reads the ES Interval MIB, which returns a value for each 15 minute interval during the past 24 hours.
read_crc_interval
Reads the ES Interval MIB, which returns a value for each 15 minute interval during the past 24 hours.
fetchAllDetails
Retrieves the details of a port from the IES.
Fetches all relevant information from the port, and fills values into the appropriate attributes.
fetchDetails
Retrieves the details of a port from the IES.
Fetches all relevant information from the port, and fills values into the appropriate attributes.
Private Methods
to_signed16int
Method that converts a 16 bit unsigned to a signed value
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Device::ZyXEL::IES::Port
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
Fullrate (http://www.fullrate.dk) Thanks for allowing me to be introduced to the "wonderful" device ;) And thanks for donating some of my work time to create this module and sharing it with the world.
COPYRIGHT & LICENSE
Copyright 2012 Jesper Dalberg, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.