Class PacketValueExtractor
java.lang.Object
ru.bitel.bgbilling.modules.inet.server.runtime.device.PacketValueExtractor
Утильный класс для извлечения значений из RADIUS- и DHCP- пакетов.
-
Field Summary
Modifier 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
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]
convertToInt
(Object data) Конвертирует значение (byte[], ByteBuffer, HEX-String) в byte[].int
convertToInt
(Object value, int def) Ковертирует значение (String, Long, Integer, byte[], ByteBuffer) в int.int
extractAgentSvlanId
(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 помошью параметров конфигурации:int
extractOption82AgentSvlanId
(DhcpPacket request) Извлечение SVLAN из option82 DHCP-пакета c помошью параметров конфигурации:int
extractOption82InterfaceId
(DhcpPacket request) Извлечение порта из option82 DHCP-пакета c помошью параметров конфигурации:int
extractOption82InterfaceId
(RadiusPacket request) Извлечение порта из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:int
extractOption82VlanId
(DhcpPacket request) Извлечение VLAN из option82 DHCP-пакета c помошью параметров конфигурации:int
extractOption82VlanId
(RadiusPacket request) Извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:int
extractVlanId
(RadiusPacket request) Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:getAgentRemoteId
(RadiusPacket request) Получение agentRemoteId из option82 RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_REMOTE_ID, то возвращает ее значение.int
getAgentSvlanId
(RadiusPacket request, boolean setOption) Получение SVLAN из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_SVLAN, то возвращает ее значение.ru.bitel.common.io.BinaryValueExtractor
getExtractor
(ParameterMap params, String prefix) getOption82AgentRemoteId
(DhcpPacket request, boolean setOption) Получение agentRemoteId из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.AGENT_REMOTE_ID, то возвращает ее значение.int
getOption82AgentSvlanId
(DhcpPacket request, boolean setOption) Получение SVLAN из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.AGENT_SVLAN, то возвращает ее значение.getOption82CircuitId
(RadiusPacket request) Получение circuitId из option82 RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.AGENT_CIRCUIT_ID, то возвращает ее значение.int
getOption82InterfaceId
(DhcpPacket request, boolean setOption) Получение порта из DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.INTERFACE_ID, то возвращает ее значение.int
getOption82InterfaceId
(RadiusPacket request, boolean setOption) Получение порта из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.INTERFACE_ID, то возвращает ее значение.getOption82Login
(DhcpPacket request) Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:getOption82Login
(DhcpPacket request, boolean setOption) Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:int
getOption82VlanId
(DhcpPacket request, boolean setOption) Получение VLAN из option82 DHCP-пакета.
Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение.int
getOption82VlanId
(RadiusPacket request, boolean setOption) Получение VLAN из circuitId option82 RADIUS-пакета.
Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение.int
getVlanId
(RadiusPacket request, boolean setOption) Получение VLAN из RADIUS-пакета.
Если есть установленная опция InetRadiusProcessor.VLAN_ID, то возвращает ее значение.void
setCalledStationIdAttribute
(RadiusPacket request) Подмена Called-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:void
setCallingStationIdAttribute
(RadiusPacket request) Подмена Calling-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:void
setMacAddressOption
(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
-