• Non ci sono risultati.

4.2 SOON e NGN

5.1.3 Proprietà

Una volta definite le classi, si è passati alla definizione delle loro proprietà (o predicati, nella terminologia RDF).

5.1.3.1 Proprietà name

Questa proprietà permette di assegnare un identificativo, comprensibile agli umani, alle risorse rappresentate in un documento RDF. Questa proprietà può essere attribuita a qualsiasi classe definita all’interno del vocabolario. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # na me " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > name </ rd fs : label >

< rdfs : c o m m e n t xml : l ang =" en " > A s t r i n g r e p r e s e n t i n g an e l e m e n t in human - r e a d a b l e way . </ rd fs : comment >

< rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # L o g i c a l R e s o u r c e "/ > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # P h y s i c a l R e s o u r c e "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 0 / 0 1 / rdf - s c h e m a # L i t e r a l "/ > </ rdf : P rop ert y > 5.1.3.2 Proprietà duration

Questa proprietà permette di assegnare una durata a risorse di classe Connection, Session e Dialog. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # d u r a t i o n " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > dur ati on </ rdf s : label >

< rdfs : c o m m e n t xml : l ang =" en " > An i n t e g e r r e p r e s e n t i n g the s e s s i o n d u r a t i o n . </ rdf s : comment >

< r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # S e s s i o n "/ > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # D i a l o g "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # i n t e g e r "/ > </ rdf : P rop ert y > 5.1.3.3 Proprietà hasSession

Questa proprietà consente di assegnare una sessione ad un dialogo. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s S e s s i o n " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > has session </ rd fs : label > < r dfs : c o m m e n t xml : l ang =" en " > The h a s S e s s i o n p r o p e r t y a s s i g n s a s e s s i o n to a d i a l o g . </ rd fs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # D i a l o g "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 0 / 0 1 / rdf - s c h e m a # S e s s i o n "/ > </ rdf : P rop ert y > 5.1.3.4 Proprietà hasConnection

Questa proprietà assegna una connessione ad una sessione. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s C o n n e c t i o n " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > has c o n n e c t i o n </ rd fs : label > < r dfs : c o m m e n t xml : l ang =" en " > The h a s C o n n e c t i o n p r o p e r t y

< rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # S e s s i o n "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 0 / 0 1 / rdf - s c h e m a # C o n n e c t i o n "/ > </ rdf : P rop ert y > 5.1.3.5 Proprietà source

Questa proprietà assegna l’endpoint sorgente ad una connessione. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # s o u r c e " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > s o u r c e endp oin t </ rdf s : label > < rdfs : c o m m e n t xml : l ang =" en " > The e n d p o i n t fro m w h i c h the

da ta s t r e a m is o r i g i n a t e d . </ r dfs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 0 / 0 1 / rdf - s c h e m a # E n d p o i n t "/ > </ rdf : P rop ert y > 5.1.3.6 Proprietà destination

Questa proprietà assegna l’endpoint di destinazione ad una connessione. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # d e s t i n a t i o n " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > d e s t i n a t i o n end poin t </ rdf s : label >

< rdfs : c o m m e n t xml : l ang =" en " > The e n d p o i n t t o w a r d s w h i c h the dat a s t r e a m is h e a d e d . </ rdf s : comment >

< rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ >

< rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 0 / 0 1 / rdf - s c h e m a # E n d p o i n t "/ >

</ rdf : P rop ert y >

5.1.3.7 Proprietà protocol

Questa proprietà permette di indicare il protocollo di trasporto utilizzato in una con- nessione. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # p r o t o c o l " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > pro toc ol </ rdf s : label >

< r dfs : c o m m e n t xml : l ang =" en " > The t r a n s p o r t p r o t o c o l use d in a c o n n e c t i o n . </ r dfs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # s t r i n g "/ > </ rdf : P rop ert y > 5.1.3.8 Proprietà hasBandwidth

Questa proprietà permette di specificare la bitrate associata ad una connessione. Defi- nizione: < rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s B a n d w i d t h " > < r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ > < r dfs : l a b e l xml : lang =" en " > b a n d w i d t h </ rd fs : label > < r dfs : c o m m e n t xml : l ang =" en " > The b a n d w i d t h ( a s s u m e d as b i t r a t e ) r e l a t e d to a da ta t r a n s p o r t . </ rd fs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// d e i s n e t . dei s . u n i b o . it / nr dl / nrdl - syntax - ns # B a n d w i d t h "/ > </ rdf : P rop ert y >

5.1.3.9 Proprietà hasTrafficClass

Questa proprietà assegna una classe di traffico ad una connessione. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s T r a f f i c C l a s s " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > has t r a f f i c class </ r dfs : label > < rdfs : c o m m e n t xml : l ang =" en " > The t r a f f i c c l a s s of da ta i n v o l v e d in a d ata t r a n s p o r t . </ r dfs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// d e i s n e t . dei s . u n i b o . it / nr dl / nrdl - syntax - ns # T r a f f i c C l a s s "/ > </ rdf : P rop ert y > 5.1.3.10 Proprietà hasMaxDelay

Questa proprietà assegna ad una connessione il massimo ritardo di trasmissione. Defi- nizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s M a x D e l a y " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > has m a x i m u m delay </ r dfs : label > < rdfs : c o m m e n t xml : l ang =" en " > The m a x i m u m v a l u e of d e l a y in a d ata t r a n s p o r t . </ r dfs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// d e i s n e t . dei s . u n i b o . it / nr dl / nrdl - syntax - ns # M a x D e l a y "/ > </ rdf : P rop ert y > 5.1.3.11 Proprietà hasMaxJitter

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s M a x J i t t e r " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > has m a x i m u m jitter </ rdf s : label > < r dfs : c o m m e n t xml : l ang =" en " > The m a x i m u m v a l u e of j i t t e r in a da ta t r a n s p o r t . </ rd fs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nrd l / nrdl - syntax - ns # C o n n e c t i o n "/ > < r dfs : r a n g e rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nrd l / nrdl - syntax - ns # M a x J i t t e r "/ > </ rdf : P rop ert y > 5.1.3.12 Proprietà hasMaxPacketLoss

Questa proprietà assegna ad una connessione la massima probabilità di perdita di pacchetti. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # h a s M a x P a c k e t L o s s " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > has m a x i m u m p a c k e t l oss p r o b a b i l i t y </ r dfs : label > < r dfs : c o m m e n t xml : l ang =" en " > The m a x i m u m p a c k e t lo ss p r o b a b i l i t y in a dat a t r a n s p o r t . </ rdf s : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # C o n n e c t i o n "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// d e i s n e t . dei s . u n i b o . it / nr dl / nrdl - syntax - ns # M a x P a c k e t L o s s "/ > </ rdf : P rop ert y > 5.1.3.13 Proprietà ipv4

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # ip v4 " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > IPv 4 address </ r dfs : label > < rdfs : c o m m e n t xml : l ang =" en " > I Pv4 a d d r e s s of a n e t w o r k e n d p o i n t . </ rd fs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # E n d p o i n t "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # s t r i n g "/ > </ rdf : P rop ert y > 5.1.3.14 Proprietà port

Questa proprietà assegna un numero di porta ad un endpoint. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # po rt " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > port </ rd fs : label >

< rdfs : c o m m e n t xml : l ang =" en " > The po rt n u m b e r b e l o n g i n g to a n e t w o r k e n d p o i n t i n v o l v e d in a c o n n e c t i o n . </ r dfs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # E n d p o i n t "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # i n t e g e r "/ > </ rdf : P rop ert y > 5.1.3.15 Proprietà requirementStrength

Questa proprietà assegna ad un parametro di trasporto (sottoclasse di Transport- Parameter) il livello di importanza che il richiedente associa alla riservazione della particolare risorsa di rete. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # r e q u i r e m e n t S t r e n g t h " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > r e q u i r e m e n t s tre ngt h </ rdf s : label >

< r dfs : c o m m e n t xml : l ang =" en " > R e q u i r e m e n t s t r e n g t h for the r e s e r v a t i o n of a s p e c i f i c t r a n s p o r t p a r a m e t e r . </ r dfs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # T r a n s p o r t P a r a m e t e r "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # s t r i n g "/ > </ rdf : P rop ert y > 5.1.3.16 Proprietà answer

Questa proprietà assegna ad un parametro di trasporto la risposta derivante dal suo tentativo di riservazione. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # a n s w e r " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > answer </ rdf s : label >

< r dfs : c o m m e n t xml : l ang =" en " > A n s w e r r e p r e s e n t i n g the s t a t u s of the r e s e r v a t i o n of a p a r t i c u l a r t r a n s p o r t p a r a m e t e r . </ r dfs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # T r a n s p o r t P a r a m e t e r "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # s t r i n g "/ > </ rdf : P rop ert y > 5.1.3.17 Proprietà bandwidthValue

Questa proprietà assegna ad una risorsa di classe Bandwidth il valore di banda asso- ciato. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # b a n d w i d t h V a l u e " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > b a n d w i d t h value </ rdf s : label > < rdfs : c o m m e n t xml : l ang =" en " > The b a n d w i d t h v a l u e r e l a t e d to a c o n n e c t i o n . </ r dfs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # B a n d w i d t h "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # i n t e g e r "/ > </ rdf : P rop ert y > 5.1.3.18 Proprietà trafficClassValue

Questa proprietà assegna ad una risorsa di classe TrafficClass il valore associato. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # t r a f f i c C l a s s V a l u e " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > t r a f f i c c l a s s value </ r dfs : label > < rdfs : c o m m e n t xml : l ang =" en " > A s t r i n g r e p r e s e n t i n g the t r a f f i c c l a s s of a c o n n e c t i o n . </ rd fs : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # T r a f f i c C l a s s "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # s t r i n g "/ > </ rdf : P rop ert y > 5.1.3.19 Proprietà maxDelayValue

Questa proprietà assegna ad una risorsa di classe MaxDelay il valore associato. Defi- nizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # m a x D e l a y V a l u e " >

< rdfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . d eis . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< r dfs : l a b e l xml : lang =" en " > m a x i m u m d e l a y value </ rd fs : label > < r dfs : c o m m e n t xml : l ang =" en " > An i n t e g e r n u m b e r r e p r e s e n t i n g the m a x i m u m t r a n s f e r d e l a y . </ rd fs : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # M a x D e l a y "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # i n t e g e r "/ > </ rdf : P rop ert y > 5.1.3.20 Proprietà maxJitterValue

Questa proprietà assegna ad una risorsa di classe MaxJitter il valore associato. De- finizione: < rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # m a x J i t t e r V a l u e " > < r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ > < r dfs : l a b e l xml : lang =" en " > m a x i m u m j i t t e r value </ rdf s : label > < r dfs : c o m m e n t xml : l ang =" en " > An i n t e g e r n u m b e r r e p r e s e n t i n g the m a x i m u m j i t t e r . </ rdf s : comment > < r dfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # M a x J i t t e r "/ > < r dfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # i n t e g e r "/ > </ rdf : P rop ert y > 5.1.3.21 Proprietà maxPacketLossValue

Questa proprietà assegna ad una risorsa di classe MaxPacketLoss il valore associato. Definizione:

< rdf : P r o p e r t y rdf : a b o u t =" h ttp :// d e i s n e t . d eis . u n i b o . it / nr dl / nrdl - syntax - ns # m a x P a c k e t L o s s V a l u e " >

< r dfs : i s D e f i n e d B y rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / n rdl / s c h e m a . rdf "/ >

< rdfs : l a b e l xml : lan g =" en " > m a x i m u m p a c k e t los s p r o b a b i l i t y </ rdf s : label > < rdfs : c o m m e n t xml : l ang =" en " > A r eal n u m b e r r e p r e s e n t i n g the m a x i m u m p a c k e t lo ss p r o b a b i l i t y . </ rdf s : comment > < rdfs : d o m a i n rdf : r e s o u r c e =" ht tp :// d e i s n e t . de is . u n i b o . it / nr dl / nrdl - syntax - ns # M a x P a c k e t L o s s "/ > < rdfs : r a n g e rdf : r e s o u r c e =" htt p :// www . w3 . org / 2 0 0 1 / X M L S c h e m a # f l o a t "/ > </ rdf : P rop ert y >

5.2

Interfaccia SIP-M/NET-M

La seconda parte del lavoro è stata rivolta allo sviluppo di un modulo software per OpenSIPS che facesse da interfaccia fra i moduli SIP-M e NET-M dell’architettura proposta in questo lavoro di tesi (fig. 7). Il modulo per OpenSIPS è stato denominato “Netres”, in quanto fa da mediatore nella riservazione delle risorse di rete.

Ogni modulo di OpenSIPS ha la possibilità di esportare parametri di configurazione e funzioni. L’esportazione dei parametri consiste nella possibilità di poterli impostare dall’interno del file di configurazione, mentre l’esportazione di funzioni consiste nella possibilità di usarle all’interno degli script di routing dei messaggi, sempre all’interno del file di configurazione.

Per mezzo del file di configurazione di OpenSIPS possono essere impostate opzioni come i protocolli di trasporto da utilizzare, le porte e gli indirizzi di ascolto, i moduli da caricare, i loro parametri e gli script di routing dei messaggi SIP.

Nella parte iniziale del file di configurazione devono essere specificati tutti i moduli che si intendono caricare. Ogni modulo mette a disposizione una particolare funziona- lità, o un insieme di funzionalità strettamente collegate, perciò la scelta del caricamento dei moduli è funzione del particolare uso che si intende fare di OpenSIPS. Ad esempio, per caricare il modulo Netres occorre inserire la seguente riga:

l o a d m o d u l e " n e t r e s . so "

Dopo aver deciso quali moduli verranno caricati, è possibile specificare i valori dei loro parametri e infine gli script di routing dei messaggi SIP. Questi script sono il luogo nel quale vengono prese le decisioni sull’instradamento dei messaggi (sia di

Figura 7. Interfaccia fra SIP-M e NET-M

richiesta che di risposta) e sul loro trattamento in genere. Qui vengono utilizzate le funzioni esportate dai moduli per ottenere il comportamento complessivo desiderato per l’applicazione.

5.2.1

Parametri esportati

Il modulo esporta i seguenti parametri:

1. netm_ipv4: l’indirizzo IP di ascolto del modulo NET-M; 2. netm_port: la porta TCP di ascolto del modulo NET-M;

3. netm_resp_timeout: massimo tempo di attesa per le risposte provenienti dal modulo NET-M, espresso in secondi (un valore inferiore ad uno indica un tempo infinito).

Esempio di impostazione dei parametri nel file di configurazione di OpenSIPS:

m o d p a r a m (" n e t r e s " , " n e t m _ i p v 4 " , " 1 2 7 . 1 . 2 . 3 " ) m o d p a r a m (" n e t r e s " , " n e t m _ p o r t " , 1 8 4 6 )

5.2.2

Funzioni esportate

Il modulo esporta le due seguenti funzioni: 1. has_nrdl_request()

2. process_nrdl_request()

5.2.3

Funzione has_nrdl_request()

Questa funzione consente di verificare se un messaggio SIP incapsula contenuto NRDL. In particolare, la funzione si accerta che la descrizione di risorse di rete contenuta nel messaggio rappresenti una richiesta di risorse di rete. Infatti solo le richieste di ri- servazione di risorse devono essere prese in considerazione e passate allo strato di trasporto.

Signature della funzione:

int h a s _ n r d l _ r e q u e s t ( s t r u c t s i p _ m s g * msg )

Valori di ritorno:

• 1 se il messaggio specificato contiene una richiesta NRDL; • -1 in caso contrario.

5.2.3.1 Implementazione

Dopo aver eseguito un veloce controllo sulla consistenza del parametro di ingresso, la funzione estrae dal corpo del messaggio la parte di tipo RDF/XML; la parte, cioè, che ha un valore di Content-Type pari ad application/rdf+xml[24]:

str r d f _ p a r t = {0 , 0};

c o n s t str r d f _ c t y p e = { R D F _ C O N T E N T _ T Y P E _ S T R , R D F _ C O N T E N T _ T Y P E _ L E N };

Nel caso in cui il messaggio contenga una parte di RDF, ne viene eseguito il parsing utilizzando la libreria Raptor3:

i n i t _ r a p t o r () ; r a p t o r _ s e t _ s t a t e m e n t _ h a n d l e r ( r d f _ p a r s e r , NULL , p a r s e _ t r i p l e ) ; r a p t o r _ s e t _ n a m e s p a c e _ h a n d l e r ( r d f _ p a r s e r , NULL , n a m e s p a c e _ w a t c h e r ) ; r = r a p t o r _ s t a r t _ p a r s e ( r d f _ p a r s e r , b a s e _ u r i ) ; if ( r != 0) go to s t o p _ r a p t o r ; r a p t o r _ p a r s e _ c h u n k ( r d f _ p a r s e r , ( v oid *) r d f _ p a r t . s , r d f _ p a r t . len , 1) ;

Finito il parsing, la funzione ritorna il valore affermativo (1) se e solo se il con- tenuto RDF contiene la dichiarazione del namespace NRDL e nel documento non vi sono classi con un parametro answer:

s t o p _ r a p t o r : f i n i _ r a p t o r () ; end : if ( h a s _ n a m e s p a c e && ! h a s _ a n s w e r ) r e t u r n 1; el se r e t u r n -1;

5.2.4

Funzione process_nrdl_request()

Questa funzione esegue le seguenti operazioni:

• estrae la richiesta di riservazione di risorse di rete (NRDL) dal corpo di un messaggio;

• trasmette la richiesta allo strato di trasporto della rete NGN, cioè al software che implementa l’interfaccia RS;

• attende la risposta (sempre in formato NRDL) proveniente dallo strato di tra- sporto;

• sostituisce, nel corpo del messaggio, la richiesta con la risposta appena ricevuta dallo strato di trasporto.

Signature della funzione:

int p r o c e s s _ n r d l _ r e q u e s t ( s t r u c t s i p _ m s g * msg )

Valori di ritorno:

• 1 se il messaggio può essere inoltrato;

• numero negativo se il messaggio non deve essere inoltrato.

5.2.4.1 Implementazione

Prima di tutto, viene creata una lista di tutte le parti contenute all’interno del corpo del messaggio, dopodiché si trova la parte di interesse (quella RDF), facendo attenzione al fatto che ve ne sia solo una nel corpo del messaggio:

m e m s e t (& b o d y _ l i s t , 0 , s i z e o f ( t y p e d _ b o d y ) ) ; m u l t i p a r t _ g e t _ a l l _ c o n t e n t s ( msg , & b o d y _ l i s t ) ; for ( b = & b o d y _ l i s t ; b != NUL L ; b = b - > ne xt ) {

if ( b - > bo dy . s == NU LL || b - > b ody . len <= 0) c o n t i n u e ; n p a r t s ++; if ( s t r n c m p ( b - > c o n t e n t _ t y p e . s , R D F _ C O N T E N T _ T Y P E _ S T R , R D F _ C O N T E N T _ T Y P E _ L E N ) == 0) { if ( r e q u e s t . len > 0) { r = E R R _ T O O _ M A N Y _ R D F S ; go to o n _ e r r o r ;

} r e q u e s t . s = b - > b ody . s ; r e q u e s t . len = b - > bo dy . len ; } } if ( r e q u e s t . len <= 0 || r e q u e s t . s == NU LL ) { r = E R R _ I N T E R N A L ; go to o n _ e r r o r ; }

Una volta estratto il contenuto RDF, lo si utilizza per la riservazione delle risorse di rete:

r = r e s e r v a t i o n _ r e q _ r e s p (& request , & r e s p o n s e ) ; if ( r != 0)

go to o n _ e r r o r ;

Viene eseguito un controllo sulla risposta. In particolare, vige la regola secondo cui se la risposta è uguale alla richiesta, allora la richiesta non è ben formata:

if ( s t r n c m p ( r e q u e s t . s , r e s p o n s e . s , r e q u e s t . len ) == 0) { L M _ E R R ( " N RDL r e q u e s t not a c c e p t e d by T r a n s p o r t S t r a t u m \ n " ) ; r = E R R _ R E Q _ N O T _ A C C E P T ; go to o n _ e r r o r ; }

Occorre notare che la SCF (proxy SIP) non si interessa del contenuto della risposta, quindi si comporta ugualmente nel caso di risposta positiva o negativa. Infatti sarà compito dell’entità a cui è destinato il messaggio capire se la riservazione delle risorse di rete richieste dall’altra parte è andata a buon fine, e comportarsi di conseguenza.

Se la richiesta è stata interpretata con successo dallo strato di trasporto, allora si procede alla creazione di un nuovo messaggio che contenga la risposta appena ricevuta al posto della richiesta iniziale. Il nuovo messaggio sostituirà quello ricevuto come parametro di ingresso della funzione:

if ( b - > bo dy . s == NU LL || b - > b ody . len <= 0) c o n t i n u e ;

if ( s t r n c m p ( b - > c o n t e n t _ t y p e . s , R D F _ C O N T E N T _ T Y P E _ S T R , R D F _ C O N T E N T _ T Y P E _ L E N ) == 0) {

b - > b ody . s = r e s p o n s e . s ; b - > b ody . len = r e s p o n s e . len ; b r e a k ; } } r = m u l t i p a r t _ b u i l d _ m s g ( msg , & b o d y _ l i s t ) ; if ( r != 0) { r = E R R _ I N T E R N A L ; go to o n _ e r r o r ; }

Se la creazione del messaggio va a buon fine, si dealloca la memoria precedente- mente allocata da multipart_get_all_contents(), e si ritorna il valore 1:

for ( b = & b o d y _ l i s t ; b != NUL L && b - > n ext != NULL ; b = b - > ne xt ) ; for (; b != NU LL ; b = b - > p rev ) p k g _ f r e e ( b - > next ) ; L M _ D B G ( " N RDL r e q u e s t s u c c e s s f u l l y r e p l a c e d w ith r e s p o n s e \ n " ) ; r e t u r n 1;

Nei casi di errore visti in precedenza si salta alla label on_error. Qui per prima cosa si dealloca la memoria dinamica allocata in precedenza, quindi, a seconda del tipo di messaggio SIP che si sta modificando, l’esecuzione si differenzia. Se il messaggio è di richiesta si ritorna il valore di errore, negativo, che dipende dalla tipologia di errore riscontrato:

o n _ e r r o r :

for ( b = & b o d y _ l i s t ; b != NUL L && b - > n ext != NULL ; b = b - > ne xt ) ;

for (; b != NU LL ; b = b - > p rev ) p k g _ f r e e ( b - > next ) ;

if ( msg - > f i r s t _ l i n e . t ype == S I P _ R E Q U E S T ) r e t u r n r ;

Se invece il messaggio attualmente considerato è una risposta SIP (ad esempio 183), deve essere inoltrato in ogni caso perché se andasse perduto, il SIP User Agent che lo ha spedito (nel caso in cui venga usata l’estensione per l’affidabilità delle ri- sposte provvisorie – metodo PRACK) continuerebbe ad inviarlo fino allo scadere di un apposito timeout. Per questo motivo, nel caso in questione, è stata fatta la scelta im- plementativa di sostituire la richiesta NRDL con un documento RDF non valido, in

Documenti correlati