# # PRE: update # update reply { Filter-Id := "filter" } update request { Tmp-String-0 := '9870' Tmp-String-1 := '98709870' Tmp-String-2 := '987098709870' Tmp-Octets-0 := 0x39383731 Tmp-Octets-1 := 0x3938373139383731 Tmp-Octets-2 := 0x393837313938373139383731 Tmp-IP-Address-0 := 57.56.55.50 Tmp-Date-0 := 959985459 Tmp-Integer-0 := 959985460 Tmp-Cast-Abinary := 'ip out forward srcip 57.56.55.53/32 udp dstport = 1812' Tmp-Cast-IfId := '0000:0000:3938:3737' Tmp-Cast-IPv6Addr := '::3938:3738' Tmp-Cast-IPv6Prefix := '::3938:3739/128' Tmp-Cast-Byte := 58 Tmp-Cast-Short := 14139 Tmp-Cast-Ethernet := 00:00:39:38:37:3c Tmp-Cast-Integer64 := 1152921505566832445 Tmp-Cast-IPv4Prefix := 57.56.55.62/32 } update request { Tmp-String-2 := "%{integer:Tmp-IP-Address-0}" Tmp-String-3 := "%{integer:Tmp-Date-0}" Tmp-String-4 := "%{integer:Tmp-Integer-0}" Tmp-String-5 := "%{integer:Tmp-Cast-Abinary}" Tmp-String-6 := "%{integer:Tmp-Cast-Ifid}" Tmp-String-7 := "%{integer:Tmp-Cast-IPv6Addr}" Tmp-String-8 := "%{integer:Tmp-Cast-IPv6Prefix}" } # String - network order representation of a 4 char string update request { Tmp-Integer-0 := "%{integer:Tmp-String-0}" } if ((Tmp-String-0 != "%{string:Tmp-Integer-0}") || (Tmp-Integer-0 != 959985456)) { update reply { Filter-Id += 'fail 1' } } # String - network order representation of a 8 char string update request { Tmp-Integer64-0 := "%{integer:Tmp-String-1}" } if ((Tmp-String-1 != "%{string:Tmp-Integer64-0}") || (Tmp-Integer64-0 != 4123106139115632432)) { update reply { Filter-Id += 'fail 2' } } # String - Can't convert 12 byte string to integer (our biggest native size is a 64bit unsigned int) if ("%{integer:Tmp-String-2}" != '') { update reply { Filter-Id += 'fail 3' } } # Octets - network order representation of a 4 byte octet string update request { Tmp-Integer-0 := "%{integer:Tmp-Octets-0}" } if (Tmp-Octets-0 != "0x%{hex:Tmp-Integer-0}") { update reply { Filter-Id += 'fail 4a' } } if (Tmp-Integer-0 != 959985457) { update reply { Filter-Id += 'fail 4b' } } # Octets - network order representation of a 8 byte octet string update request { Tmp-Integer64-0 := "%{integer:Tmp-Octets-1}" } if (Tmp-Octets-1 != "0x%{hex:Tmp-Integer64-0}") { update reply { Filter-Id += 'fail 5a' } } if (Tmp-Integer64-0 != 4123106143410599729) { update reply { Filter-Id += 'fail 5b' } } # String - Can't convert 12 byte octet string to integer (our biggest native size is a 64bit unsigned int) if ("%{integer:Tmp-Octets-2}" != '') { update reply { Filter-Id += 'fail 6' } } # IP Address if (Tmp-String-2 != '959985458') { update reply { Filter-Id += 'fail 7' } } if (Tmp-String-2 != &Tmp-IP-Address-0) { update reply { Filter-Id += 'fail 8' } } # Date if (Tmp-String-3 != '959985459') { update reply { Filter-Id += 'fail 9' } } # Integer if (Tmp-String-4 != '959985460') { update reply { Filter-Id += 'fail 10' } } # Abinary - Can't convert ascend binary to an integer if (Tmp-String-5 != '') { update reply { Filter-Id += 'fail 11' } } # ifid - Can't convert interface ID to an integer if (Tmp-String-6 != '') { update reply { Filter-Id += 'fail 12' } } # ipv6addr - Can't convert IPv6 to integer if (Tmp-String-7 != '959985464') { update reply { Filter-ID += 'fail 13' } } # ipv6addrprefix if (Tmp-String-8 != '959985465') { update reply { Filter-ID += 'fail 14' } } update request { Tmp-String-0 := "%{integer:Tmp-Cast-Byte}" Tmp-String-1 := "%{integer:Tmp-Cast-Short}" Tmp-String-2 := "%{integer:Tmp-Cast-Ethernet}" Tmp-String-3 := "%{integer:Tmp-Cast-Integer64}" Tmp-String-4 := "%{integer:Tmp-Cast-IPv4Prefix}" } # byte if (Tmp-String-0 != '58') { update reply { Filter-ID += 'fail 15' } } # short if (Tmp-String-1 != '14139') { update reply { Filter-ID += 'fail 16' } } # ethernet if (Tmp-String-2 != '62913607630848') { update reply { Filter-Id += 'fail 17' } } if (Tmp-String-2 != &Tmp-Cast-Ethernet) { update reply { Filter-Id += 'fail 18' } } # integer64 if (Tmp-String-3 != '1152921505566832445') { update reply { Filter-Id += 'fail 19' } } # ipv4prefix if (Tmp-String-4 != '959985470') { update reply { Filter-Id += 'fail 20' } }