Class PacketValueExtractor
java.lang.Object
ru.bitel.bgbilling.modules.inet.server.runtime.device.PacketValueExtractor
Утильный класс для извлечения значений из RADIUS- и DHCP- пакетов.
- 
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PatternШаблон поиска SVLANprotected StringПрефикс атрибута (если есть) - значение для SVLANprotected intКод атрибута - значение для SVLANprotected intВендор атрибута - значение для SVLANprotected StringПрефикс атрибута (если есть) - значение для подмены Called-Station-Idprotected intКод атрибута - значение для подмены Called-Station-Idprotected intВендор атрибута - значение для подмены Called-Station-Idprotected StringПрефикс атрибута (если есть) - значение для подмены Calling-Station-Idprotected intКод атрибута - значение для подмены Calling-Station-Idprotected intВендор атрибута - значение для подмены Calling-Station-Idprotected PatternШаблон поиска MAC-адресаprotected StringПрефикс атрибута (если есть) - MAC-адресprotected intКод атрибута - MAC-адресprotected intВендор атрибута - MAC-адресprotected intНужно ли удалять заголовок (2 байта, тип+длина) из значения DHCP-опцииprotected PatternШаблон поиска VLANprotected StringПрефикс атрибута (если есть) - значение для VLANprotected intКод атрибута - значение для VLANprotected intВендор атрибута - значение для VLAN - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionbyte[]convertToInt(Object data) Конвертирует значение (byte[], ByteBuffer, HEX-String) в byte[].intconvertToInt(Object value, int def) Ковертирует значение (String, Long, Integer, byte[], ByteBuffer) в int.intextractAgentSvlanId(RadiusPacket request) Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:extractCalledStationId(RadiusPacket request) Получение Called-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации:extractCallingStationId(RadiusPacket request) Получение Calling-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации:extractMacAddress(RadiusPacket request) Извлечение значения MAC-адреса с помошью параметров конфигурации:extractOption82AgentRemoteId(DhcpPacket request) Извлечение agentRemoteId из option82 DHCP-пакета c помошью параметров конфигурации:intextractOption82AgentSvlanId(DhcpPacket request) Извлечение SVLAN из option82 DHCP-пакета c помошью параметров конфигурации:intextractOption82InterfaceId(DhcpPacket request) Извлечение порта из option82 DHCP-пакета c помошью параметров конфигурации:intextractOption82InterfaceId(RadiusPacket request) Извлечение порта из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:intextractOption82VlanId(DhcpPacket request) Извлечение VLAN из option82 DHCP-пакета c помошью параметров конфигурации:intextractOption82VlanId(RadiusPacket request) Извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:intextractVlanId(RadiusPacket request) Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:getAgentRemoteId(RadiusPacket request) Получение agentRemoteId из option82 RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_REMOTE_ID, то возвращает ее значение.intgetAgentSvlanId(RadiusPacket request, boolean setOption) Получение SVLAN из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_SVLAN, то возвращает ее значение.ru.bitel.common.io.BinaryValueExtractorgetExtractor(ParameterMap params, String prefix) getOption82AgentRemoteId(DhcpPacket request, boolean setOption) Получение agentRemoteId из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.AGENT_REMOTE_ID, то возвращает ее значение.intgetOption82AgentSvlanId(DhcpPacket request, boolean setOption) Получение SVLAN из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.AGENT_SVLAN, то возвращает ее значение.getOption82CircuitId(RadiusPacket request) Получение circuitId из option82 RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_CIRCUIT_ID, то возвращает ее значение.intgetOption82InterfaceId(DhcpPacket request, boolean setOption) Получение порта из DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.INTERFACE_ID, то возвращает ее значение.intgetOption82InterfaceId(RadiusPacket request, boolean setOption) Получение порта из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.INTERFACE_ID, то возвращает ее значение.getOption82Login(DhcpPacket request) Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:getOption82Login(DhcpPacket request, boolean setOption) Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:intgetOption82VlanId(DhcpPacket request, boolean setOption) Получение VLAN из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение.intgetOption82VlanId(RadiusPacket request, boolean setOption) Получение VLAN из circuitId option82 RADIUS-пакета.
Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение.intgetVlanId(RadiusPacket request, boolean setOption) Получение VLAN из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.VLAN_ID, то возвращает ее значение.voidsetCalledStationIdAttribute(RadiusPacket request) Подмена Called-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:voidsetCallingStationIdAttribute(RadiusPacket request) Подмена Calling-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:voidsetMacAddressOption(RadiusPacket request) Извлечение значения MAC-адреса и установка его как опцию. 
- 
Field Details
- 
option82RemoveHeader
protected int option82RemoveHeaderНужно ли удалять заголовок (2 байта, тип+длина) из значения DHCP-опции - 
macAddressVendor
protected int macAddressVendorВендор атрибута - MAC-адрес - 
macAddressType
protected int macAddressTypeКод атрибута - MAC-адрес - 
macAddressPrefix
Префикс атрибута (если есть) - MAC-адрес - 
macAddressPattern
Шаблон поиска MAC-адреса - 
callingStationIdVendor
protected int callingStationIdVendorВендор атрибута - значение для подмены Calling-Station-Id - 
callingStationIdType
protected int callingStationIdTypeКод атрибута - значение для подмены Calling-Station-Id - 
callingStationIdPrefix
Префикс атрибута (если есть) - значение для подмены Calling-Station-Id - 
calledStationIdVendor
protected int calledStationIdVendorВендор атрибута - значение для подмены Called-Station-Id - 
calledStationIdType
protected int calledStationIdTypeКод атрибута - значение для подмены Called-Station-Id - 
calledStationIdPrefix
Префикс атрибута (если есть) - значение для подмены Called-Station-Id - 
vlanVendor
protected int vlanVendorВендор атрибута - значение для VLAN - 
vlanType
protected int vlanTypeКод атрибута - значение для VLAN - 
vlanPrefix
Префикс атрибута (если есть) - значение для VLAN - 
vlanPattern
Шаблон поиска VLAN - 
agentSvlanVendor
protected int agentSvlanVendorВендор атрибута - значение для SVLAN - 
agentSvlanType
protected int agentSvlanTypeКод атрибута - значение для SVLAN - 
agentSvlanPrefix
Префикс атрибута (если есть) - значение для SVLAN - 
agentSvlanPattern
Шаблон поиска SVLAN 
 - 
 - 
Constructor Details
- 
PacketValueExtractor
 
 - 
 - 
Method Details
- 
convertToInt
Ковертирует значение (String, Long, Integer, byte[], ByteBuffer) в int.- Parameters:
 value-def-- Returns:
 
 - 
convertToInt
Конвертирует значение (byte[], ByteBuffer, HEX-String) в byte[].- Parameters:
 data-- Returns:
 
 - 
getOption82AgentRemoteId
Получение agentRemoteId из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.AGENT_REMOTE_ID, то возвращает ее значение. Иначе идет извлечение черезextractOption82AgentRemoteId(DhcpPacket).- Parameters:
 request- DHCP-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractOption82AgentRemoteId
Извлечение agentRemoteId из option82 DHCP-пакета c помошью параметров конфигурации:dhcp.option82.agentRemoteId.code=2 dhcp.option82.agentRemoteId.hex=.*
Илиdhcp.option82.agentRemoteId.code=2 dhcp.option82.agentRemoteId.position=2 dhcp.option82.agentRemoteId.length=6
- Parameters:
 request-- Returns:
 
 - 
getAgentRemoteId
Получение agentRemoteId из option82 RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_REMOTE_ID, то возвращает ее значение. Иначе идет извлечение c помощью параметровradius.agentRemoteId.vendor=2352 radius.agentRemoteId.type=96 #radius.agentRemoteId.prefix= #radius.agentRemoteId.pattern=
Полученное значение устанавливается как опция InetRadiusProcessor.AGENT_REMOTE_ID в пакет.- Parameters:
 request- RADIUS-запрос.- Returns:
 
 - 
getOption82CircuitId
Получение circuitId из option82 RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_CIRCUIT_ID, то возвращает ее значение. Иначе идет извлечение c помощью параметровradius.option82.circuitId.vendor=2352 radius.option82.circuitId.type=97 #radius.option82.circuitId.prefix= #radius.option82.circuitId.pattern=
Полученное значение устанавливается как опция InetRadiusProcessor.AGENT_CIRCUIT_ID в пакет.- Parameters:
 request- RADIUS-запрос.- Returns:
 
 - 
getOption82VlanId
Получение VLAN из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение. Иначе идет извлечение черезextractOption82VlanId(DhcpPacket).- Parameters:
 request- DHCP-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
getOption82AgentSvlanId
Получение SVLAN из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.AGENT_SVLAN, то возвращает ее значение. Иначе идет извлечение черезextractOption82AgentSvlanId(DhcpPacket).- Parameters:
 request- DHCP-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractOption82VlanId
Извлечение VLAN из option82 DHCP-пакета c помошью параметров конфигурации:dhcp.option82.vlanId.code=2 dhcp.option82.vlanId.hex=^(\w{2})Илиdhcp.option82.vlanId.code=2 dhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=2
Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.vlanId.code ингоринуется).- Parameters:
 request-- Returns:
 
 - 
extractOption82AgentSvlanId
Извлечение SVLAN из option82 DHCP-пакета c помошью параметров конфигурации:dhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.hex=^(\w{2})Илиdhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.position=0 dhcp.option82.agentSvlanId.length=2
Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.agentSvlanId.code ингоринуется).- Parameters:
 request-- Returns:
 
 - 
getOption82VlanId
Получение VLAN из circuitId option82 RADIUS-пакета.
Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение. Иначе идет извлечение черезextractOption82VlanId(RadiusPacket).- Parameters:
 request- RADIUS-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractOption82VlanId
Извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:dhcp.option82.vlanId.hex=^(\w{2})Илиdhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=2
- Parameters:
 request-- Returns:
 - See Also:
 
 - 
getVlanId
Получение VLAN из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.VLAN_ID, то возвращает ее значение. Иначе идет извлечение черезextractVlanId(RadiusPacket).- Parameters:
 request- RADIUS-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractVlanId
Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:radius.vlan.vendor= radius.vlan.type= radius.vlan.prefix= radius.vlan.pattern=
Или извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:dhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=2
- Parameters:
 request- RADIUS-пакет.- Returns:
 
 - 
getAgentSvlanId
Получение SVLAN из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_SVLAN, то возвращает ее значение. Иначе идет извлечение черезextractAgentSvlanId(RadiusPacket).- Parameters:
 request- RADIUS-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractAgentSvlanId
Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:radius.agentSvlan.vendor= radius.agentSvlan.type= radius.agentSvlan.prefix= radius.agentSvlan.pattern=
Или извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:dhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.hex=^(\w{2})Илиdhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.position=0 dhcp.option82.agentSvlanId.length=2
- Parameters:
 request- RADIUS-пакет.- Returns:
 
 - 
getOption82InterfaceId
Получение порта из DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.INTERFACE_ID, то возвращает ее значение. Иначе идет извлечение черезextractOption82InterfaceId(DhcpPacket).- Parameters:
 request- DHCP-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractOption82InterfaceId
Извлечение порта из option82 DHCP-пакета c помошью параметров конфигурации:dhcp.option82.interfaceId.code=2 dhcp.option82.interfaceId.hex=^(\w{2})Илиdhcp.option82.interfaceId.code=2 dhcp.option82.interfaceId.position=0 dhcp.option82.interfaceId.length=2
Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.interfaceId.code ингоринуется).- Parameters:
 request-- Returns:
 
 - 
getOption82InterfaceId
Получение порта из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.INTERFACE_ID, то возвращает ее значение. Иначе идет извлечение черезextractOption82InterfaceId(RadiusPacket).- Parameters:
 request- RADIUS-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
extractOption82InterfaceId
Извлечение порта из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:dhcp.option82.interfaceId.hex=^(\w{2})Илиdhcp.option82.interfaceId.position=0 dhcp.option82.interfaceId.length=2
- Parameters:
 request-- Returns:
 - See Also:
 
 - 
getOption82Login
Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:dhcp.option82.login.code=2 dhcp.option82.login.hex=.*
- Parameters:
 request- DHCP-запрос.setOption- нужно ли установить извлеченное значение в пакет через request.setOption.- Returns:
 
 - 
getOption82Login
Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:dhcp.option82.login.code=2 dhcp.option82.login.hex=.*
- Parameters:
 request- DHCP-запрос.- Returns:
 
 - 
setCallingStationIdAttribute
Подмена Calling-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:radius.callingStationId.vendor= radius.callingStationId.type= radius.callingStationId.prefix=
- Parameters:
 request-
 - 
extractCallingStationId
Получение Calling-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации:radius.callingStationId.vendor= radius.callingStationId.type= radius.callingStationId.prefix=
- Parameters:
 request-
 - 
setCalledStationIdAttribute
Подмена Called-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:radius.calledStationId.vendor= radius.calledStationId.type= radius.calledStationId.prefix=
- Parameters:
 request-
 - 
extractCalledStationId
Получение Called-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации:radius.calledStationId.vendor= radius.calledStationId.type= radius.calledStationId.prefix=
- Parameters:
 request-
 - 
setMacAddressOption
Извлечение значения MAC-адреса и установка его как опцию. Извлечение происходит с помошью параметров конфигурации:radius.macAddress.vendor= radius.macAddress.type= radius.macAddress.prefix= radius.macAddress.pattern=
- Parameters:
 request-
 - 
extractMacAddress
Извлечение значения MAC-адреса с помошью параметров конфигурации:radius.macAddress.vendor= radius.macAddress.type= radius.macAddress.prefix= radius.macAddress.pattern=
- Parameters:
 request-
 - 
getExtractor
 
 -