ADC Advanced Policy Expressions

IPV6_ADDRESS_AT


Provides operations for the 128-bit IPv6 address value. Some general information regarding IPv6 expressions: IPv6 PIXL expressions can be combined with other PIXL expressions using the '+' operator. The output is expected to be the concatenation of the string representations of the individual PIXL expressions. No other operator other than '+' is expected to work when any of the operands is an IPv6 PIXL expression. Also, IPv6 PIXL expressions can be combined with any other type of PIXL expression except a PIXL expression that produces a bool result. In other words, if A and/or B are two IPv6 addresses, A+B should result in the string AB. When one of A or B is an IPv6 address, the other can only be a number or a string and not a boolean. Further, when A and/or B is an IPv6 address, the only operator allowed between them is '+'.

Example: Let the client source IPv6 address be ABCD:1234::ABCD. Let the server destination IPv4 address be 10.100.10.100. Then the expression CLIENT.IPV6.SRC + SERVER.IP.DST should produce the output "ABCD:1234::ABCD10.100.10.100". Similarly, CLIENT.IPV6.SRC + 5 should produce the result ABCD:1234::ABCD5

This topic lists the expressions that are provided by this class.

APPEND (text_t str)

Appends the given string to the string representation of the current IPv6 address.

Parameters``:

            str- the string to append.

Returns: text_t

APPLY_MASK (ipv6_address_at i)

Returns IPV6 Address Value after applying subnet mask which can take values between 0.0.0.0.0.0.0.0 and ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Parameters (expressions not allowed):

            i- IP Address

Returns: ipv6_address_at

EQ (ipv6_address_at i)

Returns Boolean TRUE if the IP address value is same as the argument. IPv6 Address specified in one of the valid IPv6 forms like CLIENT.IPV6.DST.EQ(1000:1001:CD10:0000:0000:89AB:4567:CDEF). All valid forms of specifying an IPv6 address are supported.

Parameters (expressions not allowed):

            i- IP Address

Returns: bool_at

  • GET1

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return 1000, the first set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET1.EQ(0x2058) will return true.

Returns: num_at

  • GET2

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return 1001, the second set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET2.EQ(0x2) will return true.

Returns: num_at

  • GET3

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return CD10, the third set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET3.EQ(0x0) will return true.

Returns: num_at

  • GET4

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return 0000, the fourth set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET4.EQ(0x0) will return true.

Returns: num_at

  • GET5

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return 0000, the fifth set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET5.EQ(0x0) will return true.

Returns: num_at

  • GET6

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return 89AB, the sixth set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET6.EQ(0x0) will return true.

Returns: num_at

  • GET7

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return 4567, the seventh set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET7.EQ(0x230) will return true.

Returns: num_at

  • GET8

    If the IP address in the current context is 1000:1001:CD10:0000:0000:89AB:4567:CDEF then it will return CDEF, the eighth set of 128 bits of the IP address. The IPv6 address is printed using hexadecimal digits. If the Client's IPv6 address is 2058:2::230:3a5a then CLIENT.IPV6.SRC.GET8.EQ(0x3a5a) will return true.

Returns: num_at

IN_SUBNET (ipv6_subnet_at s)

Returns Boolean TRUE if the IP address value is in the subnet specified by the argument. IPv6 Subnet specified in one of the valid IPv6 forms like CLIENT.IPV6.DST.EQ(1000:1001:CD10:0000:0000:89AB:4567:CDEF/60). All valid forms of specifying an IPv6 address are supported.

Parameters (expressions not allowed):

            s- IP Subnet

Returns: bool_at

  • IPREP_IS_MALICIOUS

    IP Reputation. Returns TRUE if the client IP is categorized as malicious else returns FALSE.

Returns: bool_at

IPREP_THREAT_CATEGORY (ip_protocol_iprep_category_e category)

IP Reputation. Returns TRUE if the client IP is categorized as malicious and threat category matches category argument, else returns FALSE.

Parameters (expressions not allowed):

            category- is IP category

Returns: bool_at

  • IS_IPV4

    Returns TRUE or FALSE depending on whether this is an IPv4 client.

Returns: bool_at

  • LAT_LONG

    Results in text_t containing location as cordinates. Location will be of the form: Latitude,Longitude Expression example: CLIENT.IPV6.SRC.LAT_LONG For example: 36,-119

Returns: text_t

  • LOCATION

    Results in list_t containing location. Location will be of the form: qual1.qual2.qual3.qual4.qual5.qual6 Expression example: CLIENT.IPV6.SRC.LOCATION For example: NorthAmerica.US.*.*.*.*

Returns: list_t

LOCATION (num_at n)

Results in list_t containing location. Location will be of the form: qual1.qual2.qual3.qual4.qual5.qual6 Expression example: CLIENT.IPV6.SRC.LOCATION(2) For example: NorthAmerica.US

Parameters (expressions not allowed):

            n- is the level up to which location will be returned, the first qualifier is numbered 1.

Returns: list_t

MATCHES_LOCATION (text_t location)

Results in Boolean TRUE value if and only if the location of the IP matches the location argument. Location string will be of the form: qual1.qual2.qual3.qual4.qual5.qual6 Expression example: CLIENT.IPV6.SRC.MATCHES_LOCATION("qual1.qual2.qual3.*.*.*") For example: CLIENT.IPV6.SRC.MATCHES_LOCATION("NorthAmerica.US.California.*.*.*")

Parameters (expressions not allowed):

            location- Location to be matched.

Returns: bool_at

MATCHES (text_t hostname)

Returns Boolean TRUE if hostname IPV6 address matches the current IPV6 address. The hostname string cannot be bigger than 255 characters.

Parameters (expressions not allowed):

            hostname- HostName

Returns: bool_at

NE (ipv6_address_at i)

Returns Boolean TRUE if the IP address value is not same as the argument. IPv6 Address specified in one of the valid IPv6 forms like CLIENT.IPV6.DST.EQ(1000:1001:CD10:0000:0000:89AB:4567:CDEF). All valid forms of specifying an IPv6 address are supported.

Parameters (expressions not allowed):

            i- IP Address

Returns: bool_at

SUBNET (num_at n)

Returns IPV6 Address Value after applying the subnet which can take values between 0 and 128. For Example: CLIENT.IPV6.SRC.SUBNET(24)

Parameters (expressions not allowed):

            n- Subnet value. It can take values between 0 and 128.

Returns: ipv6_address_at

  • TYPECAST_TEXT_T

    Typecast the IPv6 Address Value to its string representation.

Returns: text_t

IPV6_ADDRESS_AT

In this article