lcrzo_ipopt(3)

NAME
lcrzo_ipopt - bibliotheque lcrzo : options IP

CONTENU
/*    Bibliotheque reseau de Laurent Constantin (lcrzo)
                 Module lcrzo_ipopt
  Les fonctions presentes dans ce module permettent de creer des
options IP.
*/
/*-------------------------------------------------------------*/
/* definit un type pour les options IP */
#define LCRZO_IPOPT_MAXBYTES 40
typedef lcrzo_uint8 lcrzo_ipopt[LCRZO_IPOPT_MAXBYTES];
typedef const lcrzo_ipopt lcrzo_constipopt;
/*-------------------------------------------------------------*/
/* ce define permet de verifier qu'il n'y ait pas
   de buffer overflow dans un lcrzo_ipopt */
#define lcrzo_ipopt_verifbof(nboctoptip) if(nboctoptip>LCRZO_IPOPT_MAXBYTES)return(LCRZO_ERR_PAOVERFLOW)
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_noop
   Description :
     Initialise un lcrzo_ipopt avec une option NOOP (NO OPeration).
   Parametre(s) d'entree :
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_noop(lcrzo_ipopt ipopt,
			  lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_lsrr
   Description :
     Initialise un lcrzo_ipopt avec une option LSRR
     (loose source routing and record route).
     Le lcrzo_ipopt est termine par des padding "noop" (01)
     afin qu'il soit aligne sur 4 octets.
   Parametre(s) d'entree :
     ipl1, ipl2, etc. : routeurs a mettre dans l'option
     numberofsetipl : nombre d'adresses iplx a mettre dans
                      ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_lsrr(lcrzo_ipl ipl1,
			  lcrzo_ipl ipl2,
			  lcrzo_ipl ipl3,
			  lcrzo_ipl ipl4,
			  lcrzo_ipl ipl5,
			  lcrzo_ipl ipl6,
			  lcrzo_ipl ipl7,
			  lcrzo_ipl ipl8,
			  lcrzo_ipl ipl9,
			  lcrzo_uint8 numberofsetipl,
			  lcrzo_ipopt ipopt,
			  lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_ssrr
   Description :
     Initialise un lcrzo_ipopt avec une option SSRR
     (strict source routing and record route).
     Le lcrzo_ipopt est termine par des padding "noop" (01)
     afin qu'il soit aligne sur 4 octets.
   Parametre(s) d'entree :
     ipl1, ipl2, etc. : routeurs a mettre dans l'option
     numberofsetipl : nombre d'adresses iplx a mettre dans
                      ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_ssrr(lcrzo_ipl ipl1,
			  lcrzo_ipl ipl2,
			  lcrzo_ipl ipl3,
			  lcrzo_ipl ipl4,
			  lcrzo_ipl ipl5,
			  lcrzo_ipl ipl6,
			  lcrzo_ipl ipl7,
			  lcrzo_ipl ipl8,
			  lcrzo_ipl ipl9,
			  lcrzo_uint8 numberofsetipl,
			  lcrzo_ipopt ipopt,
			  lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_rr
   Description :
     Initialise un lcrzo_ipopt avec une option RR
     (record route).
     Le lcrzo_ipopt est termine par des padding "noop" (01)
     afin qu'il soit aligne sur 4 octets.
   Parametre(s) d'entree :
     numberofroutestosave : nombre de routes que l'on pourra
                            mettre dans ipopt
			    The max value is 9
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_rr(lcrzo_uint8 numberofroutestosave,
			lcrzo_ipopt ipopt,
			lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_time
   Description :
     Initialise un lcrzo_ipopt avec une option timestamp.
     Le lcrzo_ipopt est termine par des padding "noop" (01)
     afin qu'il soit aligne sur 4 octets.
   Parametre(s) d'entree :
     numberoftimestamptosave : nombre de timestamp que l'on pourra
                               mettre dans ipopt
			       The max value is 9
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_time(lcrzo_uint8 numberoftimestamptosave,
			  lcrzo_ipopt ipopt,
			  lcrzo_uint8 *pipoptsize);
/* Nom : lcrzo_ipopt_init_timeip
   Description :
     Initialise un lcrzo_ipopt avec une option timestamp.
     Le lcrzo_ipopt est termine par des padding "noop" (01)
     afin qu'il soit aligne sur 4 octets.
   Parametre(s) d'entree :
     numberofiptimestamptosave : nombre de {ip,timestamp} que
                                 l'on pourra mettre dans ipopt
			         The max value is 4
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_timeip(lcrzo_uint8 numberofiptimestamptosave,
			    lcrzo_ipopt ipopt,
			    lcrzo_uint8 *pipoptsize);
/* Nom : lcrzo_ipopt_init_timeipp
   Description :
     Initialise un lcrzo_ipopt avec une option timestamp.
     Le lcrzo_ipopt est termine par des padding "noop" (01)
     afin qu'il soit aligne sur 4 octets.
   Parametre(s) d'entree :
     ipl1, ipl2, etc. : routeurs a mettre dans l'option
     numberofsetipl : nombre d'adresses iplx a mettre dans
                      ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_timeipp(lcrzo_ipl ipl1,
			     lcrzo_ipl ipl2,
			     lcrzo_ipl ipl3,
			     lcrzo_ipl ipl4,
			     lcrzo_uint8 numberofsetipl,
			     lcrzo_ipopt ipopt,
			     lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_mixed
   Description :
     Initialise un lcrzo_ipopt par des donnees mixtes
   Parametre(s) d'entree :
     mixed: chaine mixte a utiliser
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
     LCRZO_ERR_OKDATATRUNCATED : mixed est trop long pour
                                 etre stocke dans ipopt
*/
int lcrzo_ipopt_init_mixed(lcrzo_constmixed mixed,
			   lcrzo_ipopt ipopt,
			   lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_init_stdin
   Description :
     Initialise un lcrzo_ipopt par des donnees mixtes
     entrees par stdin
   Parametre(s) d'entree :
     message : message a afficher avant de demander a
               l'utilisateur l'entrer du mixte
     defaultmixed: chaine mixte a utiliser si l'utilisateur
                   n'entre rien
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     ipopt : lcrzo_ipopt affecte avec l'option
     *pipoptsize : taille atteinte par ipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_init_stdin(lcrzo_conststring message,
		      lcrzo_constmixed defaultmixed,
		      lcrzo_ipopt ipopt,
		      lcrzo_uint8 *pipoptsize);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_1null
   Description :
     Teste si la premiere option de ipopt est une option NULL.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un NULL
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un NULL
*/
int lcrzo_ipopt_decode_1null(lcrzo_constipopt ipopt,
			     lcrzo_uint8 ipoptsize);
/* Nom : lcrzo_ipopt_decode_1noop
   Description :
     Teste si la premiere option de ipopt est une option NOOP.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un NOOP
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un NOOP
*/
int lcrzo_ipopt_decode_1noop(lcrzo_constipopt ipopt,
			     lcrzo_uint8 ipoptsize);
/* Nom : lcrzo_ipopt_decode_1lsrr
   Description :
     Teste si la premiere option de ipopt est une option LSRR.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetipl : nombre de routeurs stockes dans l'option
     *ppointer : valeur du pointeur LSRR
     *piplx : adresses IP stockees dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un LSRR
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un LSRR
*/
int lcrzo_ipopt_decode_1lsrr(lcrzo_constipopt ipopt,
			     lcrzo_uint8 ipoptsize,
			     lcrzo_uint8 *pnumberofsetipl,
			     lcrzo_uint8 *ppointer,
			     lcrzo_ipl *pipl1,
			     lcrzo_ipl *pipl2,
			     lcrzo_ipl *pipl3,
			     lcrzo_ipl *pipl4,
			     lcrzo_ipl *pipl5,
			     lcrzo_ipl *pipl6,
			     lcrzo_ipl *pipl7,
			     lcrzo_ipl *pipl8,
			     lcrzo_ipl *pipl9);
/* Nom : lcrzo_ipopt_decode_1ssrr
   Description :
     Teste si la premiere option de ipopt est une option SSRR.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetipl : nombre de routeurs stockes dans l'option
     *ppointer : valeur du pointeur SSRR
     *piplx : adresses IP stockees dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un SSRR
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un SSRR
*/
int lcrzo_ipopt_decode_1ssrr(lcrzo_constipopt ipopt,
			     lcrzo_uint8 ipoptsize,
			     lcrzo_uint8 *pnumberofsetipl,
			     lcrzo_uint8 *ppointer,
			     lcrzo_ipl *pipl1,
			     lcrzo_ipl *pipl2,
			     lcrzo_ipl *pipl3,
			     lcrzo_ipl *pipl4,
			     lcrzo_ipl *pipl5,
			     lcrzo_ipl *pipl6,
			     lcrzo_ipl *pipl7,
			     lcrzo_ipl *pipl8,
			     lcrzo_ipl *pipl9);
/* Nom : lcrzo_ipopt_decode_1rr
   Description :
     Teste si la premiere option de ipopt est une option RR.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetipl : nombre de routeurs stockes dans l'option
     *ppointer : valeur du pointeur RR
     *piplx : adresses IP stockees dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un RR
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un RR
*/
int lcrzo_ipopt_decode_1rr(lcrzo_constipopt ipopt,
			   lcrzo_uint8 ipoptsize,
			   lcrzo_uint8 *pnumberofsetipl,
			   lcrzo_uint8 *ppointer,
			   lcrzo_ipl *pipl1,
			   lcrzo_ipl *pipl2,
			   lcrzo_ipl *pipl3,
			   lcrzo_ipl *pipl4,
			   lcrzo_ipl *pipl5,
			   lcrzo_ipl *pipl6,
			   lcrzo_ipl *pipl7,
			   lcrzo_ipl *pipl8,
			   lcrzo_ipl *pipl9);
/* Nom : lcrzo_ipopt_decode_1time
   Description :
     Teste si la premiere option de ipopt est une option timestamp.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsettimestamp : nombre de timestamp stockes dans l'option
     *ppointer : valeur du champ 'pointer' du timestamp
     *poverflow : valeur du champ 'overflow' du timestamp
     *pflag : valeur du champ 'flag' du timestamp
     *ptimestampx : timestamp stockes dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un timestamp
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un timestamp
*/
int lcrzo_ipopt_decode_1time(lcrzo_constipopt ipopt,
			     lcrzo_uint8 ipoptsize,
			     lcrzo_uint8 *pnumberofsettimestamp,
			     lcrzo_uint8 *ppointer,
			     lcrzo_uint8 *poverflow,
			     lcrzo_uint8 *pflag,
			     lcrzo_uint32 *ptimestamp1,
			     lcrzo_uint32 *ptimestamp2,
			     lcrzo_uint32 *ptimestamp3,
			     lcrzo_uint32 *ptimestamp4,
			     lcrzo_uint32 *ptimestamp5,
			     lcrzo_uint32 *ptimestamp6,
			     lcrzo_uint32 *ptimestamp7,
			     lcrzo_uint32 *ptimestamp8,
			     lcrzo_uint32 *ptimestamp9);
/* Nom : lcrzo_ipopt_decode_1timeip
   Description :
     Teste si la premiere option de ipopt est une option timestamp.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetiptimestamp : nombre de timestamp stockes dans l'option
     *ppointer : valeur du champ 'pointer' du timestamp
     *poverflow : valeur du champ 'overflow' du timestamp
     *pflag : valeur du champ 'flag' du timestamp
     piplx, *ptimestampx : adresses IP et timestamps
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt commence par un timestamp
     LCRZO_ERR_OKNOTDECODED : ipopt ne commence pas par un timestamp
*/
int lcrzo_ipopt_decode_1timeip(lcrzo_constipopt ipopt,
			       lcrzo_uint8 ipoptsize,
			       lcrzo_uint8  *pnumberofsetiptimestamp,
			       lcrzo_uint8  *ppointer,
			       lcrzo_uint8  *poverflow,
			       lcrzo_uint8  *pflag,
			       lcrzo_ipl    *pipl1,
			       lcrzo_uint32 *ptimestamp1,
			       lcrzo_ipl    *pipl2,
			       lcrzo_uint32 *ptimestamp2,
			       lcrzo_ipl    *pipl3,
			       lcrzo_uint32 *ptimestamp3,
			       lcrzo_ipl    *pipl4,
			       lcrzo_uint32 *ptimestamp4);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_noop
   Description :
     Teste si ipopt contient une option NOOP.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnbbytesnoop : nombre d'octets NOOP
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient un NOOP
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas un NOOP
*/
int lcrzo_ipopt_decode_noop(lcrzo_constipopt ipopt,
			    lcrzo_uint8 ipoptsize,
			    lcrzo_uint8 *pnbbytesnoop);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_lsrr
   Description :
     Teste si ipopt contient une option LSRR.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetipl : nombre de routeurs stockes dans l'option
     *ppointer : valeur du pointeur LSRR
     *piplx : adresses IP stockees dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient un LSRR
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas un LSRR
*/
int lcrzo_ipopt_decode_lsrr(lcrzo_constipopt ipopt,
			    lcrzo_uint8 ipoptsize,
			    lcrzo_uint8 *pnumberofsetipl,
			    lcrzo_uint8 *ppointer,
			    lcrzo_ipl *pipl1,
			    lcrzo_ipl *pipl2,
			    lcrzo_ipl *pipl3,
			    lcrzo_ipl *pipl4,
			    lcrzo_ipl *pipl5,
			    lcrzo_ipl *pipl6,
			    lcrzo_ipl *pipl7,
			    lcrzo_ipl *pipl8,
			    lcrzo_ipl *pipl9);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_ssrr
   Description :
     Teste si ipopt contient une option SSRR.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetipl : nombre de routeurs stockes dans l'option
     *ppointer : valeur du pointeur SSRR
     *piplx : adresses IP stockees dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient un SSRR
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas un SSRR
*/
int lcrzo_ipopt_decode_ssrr(lcrzo_constipopt ipopt,
			    lcrzo_uint8 ipoptsize,
			    lcrzo_uint8 *pnumberofsetipl,
			    lcrzo_uint8 *ppointer,
			    lcrzo_ipl *pipl1,
			    lcrzo_ipl *pipl2,
			    lcrzo_ipl *pipl3,
			    lcrzo_ipl *pipl4,
			    lcrzo_ipl *pipl5,
			    lcrzo_ipl *pipl6,
			    lcrzo_ipl *pipl7,
			    lcrzo_ipl *pipl8,
			    lcrzo_ipl *pipl9);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_rr
   Description :
     Teste si ipopt contient une option RR.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsetipl : nombre de routeurs stockes dans l'option
     *ppointer : valeur du pointeur RR
     *piplx : adresses IP stockees dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient un RR
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas un RR
*/
int lcrzo_ipopt_decode_rr(lcrzo_constipopt ipopt,
			  lcrzo_uint8 ipoptsize,
			  lcrzo_uint8 *pnumberofsetipl,
			  lcrzo_uint8 *ppointer,
			  lcrzo_ipl *pipl1,
			  lcrzo_ipl *pipl2,
			  lcrzo_ipl *pipl3,
			  lcrzo_ipl *pipl4,
			  lcrzo_ipl *pipl5,
			  lcrzo_ipl *pipl6,
			  lcrzo_ipl *pipl7,
			  lcrzo_ipl *pipl8,
			  lcrzo_ipl *pipl9);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_time
   Description :
     Teste si ipopt contient une option timestamp.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsettimestamp : nombre de timestamp stockes dans l'option
     *ppointer : valeur du champ 'pointer' du timestamp
     *poverflow : valeur du champ 'overflow' du timestamp
     *pflag : valeur du champ 'flag' du timestamp
     *ptimestampx : timestamp stockes dans l'option
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient un timestamp
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas un timestamp
*/
int lcrzo_ipopt_decode_time(lcrzo_constipopt ipopt,
			    lcrzo_uint8 ipoptsize,
			    lcrzo_uint8 *pnumberofsettimestamp,
			    lcrzo_uint8 *ppointer,
			    lcrzo_uint8 *poverflow,
			    lcrzo_uint8 *pflag,
			    lcrzo_uint32 *ptimestamp1,
			    lcrzo_uint32 *ptimestamp2,
			    lcrzo_uint32 *ptimestamp3,
			    lcrzo_uint32 *ptimestamp4,
			    lcrzo_uint32 *ptimestamp5,
			    lcrzo_uint32 *ptimestamp6,
			    lcrzo_uint32 *ptimestamp7,
			    lcrzo_uint32 *ptimestamp8,
			    lcrzo_uint32 *ptimestamp9);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_timeip
   Description :
     Teste si ipopt contient une option timestamp.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     *pnumberofsettimestamp : nombre de timestamp stockes dans l'option
     *ppointer : valeur du champ 'pointer' du timestamp
     *poverflow : valeur du champ 'overflow' du timestamp
     *pflag : valeur du champ 'flag' du timestamp
     piplx, *ptimestampx : adresses IP et timestamps
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient un timestamp
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas un timestamp
*/
int lcrzo_ipopt_decode_timeip(lcrzo_constipopt ipopt,
			      lcrzo_uint8 ipoptsize,
			      lcrzo_uint8  *pnumberofsetiptimestamp,
			      lcrzo_uint8  *ppointer,
			      lcrzo_uint8  *poverflow,
			      lcrzo_uint8  *pflag,
			      lcrzo_ipl    *pipl1,
			      lcrzo_uint32 *ptimestamp1,
			      lcrzo_ipl    *pipl2,
			      lcrzo_uint32 *ptimestamp2,
			      lcrzo_ipl    *pipl3,
			      lcrzo_uint32 *ptimestamp3,
			      lcrzo_ipl    *pipl4,
			      lcrzo_uint32 *ptimestamp4);
/*-------------------------------------------------------------*/
/* Nom : lcrzo_ipopt_decode_unknown
   Description :
     Teste si ipopt contient une option non reconnue.
   Parametre(s) d'entree :
     ipopt : lcrzo_ipopt a verifier
     ipoptsize : taille de ipopt
   Parametre(s) d'entree-sortie :
   Parametre(s) de sortie :
     unknownipopt : lcrzo_ipopt affecte avec les options
                    inconnues de ipopt
     *punknownipoptsize : taille de unknownipopt
   Valeurs de retour normales :
     LCRZO_ERR_OK : ipopt contient une option inconnue
     LCRZO_ERR_OKNOTDECODED : ipopt ne contient pas
                              d'option inconnue
*/
int lcrzo_ipopt_decode_unknown(lcrzo_constipopt ipopt,
			       lcrzo_uint8 ipoptsize,
			       lcrzo_ipopt unknownipopt,
			       lcrzo_uint8 *punknownipoptsize);

VOIR AUSSI
lcrzo(3), lcrzo_types(3), lcrzo_data(3), lcrzo_string(3), lcrzo_time(3), lcrzo_file(3), lcrzo_address(3), lcrzo_device(3), lcrzo_list(3), lcrzo_process(3), lcrzo_ipc(3), lcrzo_header(3), lcrzo_ipopt(3), lcrzo_tcpopt(3), lcrzo_packet(3), lcrzo_icmp(3), lcrzo_print(3), lcrzo_record(3), lcrzo_conf(3), lcrzo_spoof(3), lcrzo_sniff(3), lcrzo_sock(3), lcrzo_wait(3), lcrzo_global(3), lcrzo_error(3) lcrzo_misc(3),