OVERVIEW   INDEX   DEPRECATED   HELP   CORRESPONDENCES  


Module Parameters   Data Types   Component Types   Port Types   Constants   Templates   Signatures   Functions   Altsteps   Test Cases  

Module DNS_Functions


Import Declarations:


Constants Summary
tsc_CODEC_IELength
Templates Summary
cr_DNS_Query_Header
cr_DNS_Question
cr_DNS_Query
cs_DNS_Reponse
cs_DNS_Reponse_Error
cs_DNS_Response_Header
cds_DNS_Response_Header_Error
cs_DNS_RR
cs_DNS_RDATAu_A
cs_DNS_RDATAu_NAPTR
cs_DNS_RDATAu_AAAA
cs_DNS_RDATAu_SRV
Functions Summary
f_DNS_Response

Details

tsc_CODEC_IELength
const integer tsc_CODEC_IELength := 0

cr_DNS_Query_Header
template DNS_Header cr_DNS_Query_Header :=
  { 
id := ?,
qr := '0'B,
opcode := DNSOPCODE_QUERY_E,
aa := ?,
tc := ?,
rd := ?,
ra := ?,
z := '000'B, 
rcode := ?,
qdcount := ?,
ancount := 0,
nscount := 0,
arcount := 0
  };

cr_DNS_Question
template DNS_Question cr_DNS_Question(template (present) charstring p_DomainName,
                                template (present) DNS_TYPEValue p_QType) :=
  { 
qname := p_DomainName,
qtype := p_QType,
qclass := DNSCLASS_IN_E
  };

Returns: DNS_Question -

Parameters:
cr_DNS_Query
template DNSMessage cr_DNS_Query(template (present) charstring p_DomainName,
                           template (present) DNS_TYPEValue p_QType) :=
  {
dnsHeader := cr_DNS_Query_Header,
questions :=  { cr_DNS_Question(p_DomainName, p_QType) },
answer := omit,
authority := omit,
additional := omit
  };

Returns: DNSMessage -

Parameters:
cs_DNS_Reponse
template (value) DNSMessage cs_DNS_Reponse(DNSMessage p_DNS_Query,
                                     template (omit) DNS_RRs p_DNS_RRs) :=
  {
dnsHeader  := cs_DNS_Response_Header(p_DNS_Query.dnsHeader),
questions  := p_DNS_Query.questions,
answer     := p_DNS_RRs,
authority  := p_DNS_RRs, 
additional := omit       
  };

Returns: DNSMessage -

Parameters:
cs_DNS_Reponse_Error
template (value) DNSMessage cs_DNS_Reponse_Error(DNSMessage p_DNS_Query,
                                           DNS_RCODE p_DNS_RCODE) :=
  {
dnsHeader  := cds_DNS_Response_Header_Error(p_DNS_Query.dnsHeader, p_DNS_RCODE),
questions  := p_DNS_Query.questions, 
answer     := omit,
authority  := omit,
additional := omit
  };

Returns: DNSMessage -

Parameters:
cs_DNS_Response_Header
template (value) DNS_Header cs_DNS_Response_Header(DNS_Header p_DNS_Query_Header) :=
  {
id := p_DNS_Query_Header.id,
qr := '1'B,
opcode := p_DNS_Query_Header.opcode, 
aa := '1'B,
tc := '0'B,
rd := p_DNS_Query_Header.rd,
ra := '0'B,
z := '000'B,
rcode := DNSRCODE_NoError_E,
qdcount := p_DNS_Query_Header.qdcount,
ancount := 1, 
nscount := 1, 
arcount := 0
  };

Returns: DNS_Header -

Parameters:
cds_DNS_Response_Header_Error
template (value) DNS_Header cds_DNS_Response_Header_Error(DNS_Header p_DNS_Query_Header,
                                                    DNS_RCODE p_DNS_RCODE)
modifies cs_DNS_Response_Header :=
  {
rcode := p_DNS_RCODE,
ancount := 0, 
nscount := 0  
  };

Returns: DNS_Header -

Parameters:
cs_DNS_RR
template (value) DNS_RR cs_DNS_RR(charstring p_Name,
                            DNS_TYPEValue p_RRType,
                            template (value) DNS_RDATAu p_RData) :=
  {
name := p_Name,
rrtype := p_RRType,
class := DNSCLASS_IN_E,
ttl := 300, 
rdlength := lengthof(encvalue(p_RData)) / 8,    
rdata := p_RData
  };

Returns: DNS_RR -

Parameters:
cs_DNS_RDATAu_A
template (value) DNS_RDATAu cs_DNS_RDATAu_A(O4_Type p_IPv4Addr) :=
  {
a := {
  ipv4addr := p_IPv4Addr
}
  };

Returns: DNS_RDATAu -

Parameters:
cs_DNS_RDATAu_NAPTR
template (value) DNS_RDATAu cs_DNS_RDATAu_NAPTR(charstring p_P_CSCF_DomainName) :=
  {
naptr := {
  order := 10,              
  preference := 10,         
  flags := "S",             
  services := "SIP+D2U",    
  dnrr_regexp := "",        
  replacement := "_sip._udp." & p_P_CSCF_DomainName
}
  };

Returns: DNS_RDATAu -

Parameters:
cs_DNS_RDATAu_AAAA
template (value) DNS_RDATAu cs_DNS_RDATAu_AAAA(O16_Type p_IPv6Addr) :=
  {
aaaa := {
  ipv6addr := p_IPv6Addr
}
  };

Returns: DNS_RDATAu -

Parameters:
cs_DNS_RDATAu_SRV
template (value) DNS_RDATAu cs_DNS_RDATAu_SRV(integer p_Port_ps_NoSec,
                                        charstring p_P_CSCF_DomainName) :=
  {
srv := {
  priority := 10,
  weight := 10,
  srvport := p_Port_ps_NoSec,
  target := p_P_CSCF_DomainName
}
  };

Returns: DNS_RDATAu -

Parameters:
f_DNS_Response
function f_DNS_Response(DNSMessage p_DNS_Query,
                  charstring p_P_CSCF_IPAddr,
                  charstring p_P_CSCF_DomainName,
                  integer p_Port_ps_NoSec) return template (omit) DNSMessage
  

Returns: DNSMessage -

Parameters: