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_tstr)

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_ati)

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_ati)

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_ats)

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

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_atn)

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_tlocation)

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_thostname)

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_ati)

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_atn)

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