Aggiunto materiale sulle opzioni SO_SNDBUF, SO_RCVBUF, SO_BROADCAST,
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 25 Mar 2005 17:51:03 +0000 (17:51 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 25 Mar 2005 17:51:03 +0000 (17:51 +0000)
SO_PRIORITY e SO_ERROR.  Inotrodotte un po' delle sysctl per la rete.

sockctrl.tex

index 479533c820202db836fe4d1cc981955bd31d9889..90e922b63a072d1e442fa2bf38741397a924f592 100644 (file)
@@ -2216,8 +2216,8 @@ allora il seguente:
   sez.~\ref{sec:unix_socket_xxx}). 
 
 \item[\const{SO\_BINDTODEVICE}] questa opzione permette di \textsl{legare} il
   sez.~\ref{sec:unix_socket_xxx}). 
 
 \item[\const{SO\_BINDTODEVICE}] questa opzione permette di \textsl{legare} il
-  socket ad una particolare interfaccia interfaccia, in modo che esso possa
-  ricevere ed inviare pacchetti solo su quella. L'opzione richiede per
+  socket ad una particolare interfaccia, in modo che esso possa ricevere ed
+  inviare pacchetti solo su quella. L'opzione richiede per
   \param{optval} il puntatore ad una stringa contenente il nome
   dell'interfaccia (ad esempio \texttt{eth0}); se si utilizza una stringa
   nulla o un valore nullo per \param{optlen} si rimuove un precedente
   \param{optval} il puntatore ad una stringa contenente il nome
   dell'interfaccia (ad esempio \texttt{eth0}); se si utilizza una stringa
   nulla o un valore nullo per \param{optlen} si rimuove un precedente
@@ -2319,23 +2319,49 @@ allora il seguente:
 
 \item[\const{SO\_DONTROUTE}] questa opzione forza l'invio diretto dei
   pacchetti del socket, saltando ogni processo relativo all'uso della tabella
 
 \item[\const{SO\_DONTROUTE}] questa opzione forza l'invio diretto dei
   pacchetti del socket, saltando ogni processo relativo all'uso della tabella
-  di routing del kernel. Prende come \param{optval} un intero usato come
-  valore logico. 
-
-\item[\const{SO\_BROADCAST}]
-
-
-\item[\const{SO\_SNDBUF}]
-
-
-\item[\const{SO\_RCVBUF}]  
-
-
-\item[\const{SO\_LINGER}]  
-\item[\const{SO\_PRIORITY}]
-
-\item[\const{SO\_ERROR}] 
-
+  di routing del kernel. Prende per \param{optval} un intero usato come valore
+  logico.
+
+\item[\const{SO\_BROADCAST}] questa opzione abilita il \textit{broadcast};
+  quanto abilitata i socket di tipo \const{SOCK\_DGRAM} riceveranno i
+  pacchetti inviati all'indirizzo di broadcast, e potranno scrivere pacchetti
+  su tale indirizzo.  Prende per \param{optval} un intero usato come valore
+  logico. L'opzione non ha effetti su un socket di tipo \const{SOCK\_STREAM}.
+
+
+\item[\const{SO\_SNDBUF}] questa opzione imposta la dimenzione del buffer di
+  uscita del socket. Prende per \param{optval} un intero indicante il numero
+  di byte. Il valore di default ed il valore massimo che si può specificare
+  come argomento per questa opzione sono impostabili tramiti gli opportuni
+  valori di \func{sysctl} (vedi sez.~\ref{sec:sock_sysctl}).
+
+
+\item[\const{SO\_RCVBUF}] questa opzione imposta la dimenzione del buffer di
+  ingresso del socket. Prende per \param{optval} un intero indicante il numero
+  di byte. Il valore di default ed il valore massimo che si può specificare
+  come argomento per questa opzione sono impostabili tramiti gli opportuni
+  valori di \func{sysctl} (vedi sez.~\ref{sec:sock_sysctl}).
+
+
+\item[\const{SO\_LINGER}] 
+
+\item[\const{SO\_PRIORITY}] questa opzione permette di impostare le priorità
+  per tutti i pacchetti che sono inviati sul socket, prende per \param{optval}
+  un valore intero. Con questa opzione il kernel usa il valore per ordinare le
+  priorità sulle code di rete,\foonote{questo richiede che sia abilitato il
+    sistema di \textit{Quality of Service} disponibile con le opzioni di
+    routing avanzato.} i pacchetti con priorità più alta vengono processati
+  per primi, in modalità che dipendono dalla disciplina di gestione della
+  coda. Nel caso di protocollo IP questa opzione permette anche di impostare i
+  valori del campo \textit{type of service} (TOF, vedi
+  sez.~\ref{sec:IP_intro}) per i pacchetti uscenti. Per impostare una priorità
+  al di fuori dell'intervallo di valori fra 0 e 6 sono richiesti i privilegi
+  di amministratore con la capability \const{CAP\_NET\_ADMIN}.
+
+\item[\const{SO\_ERROR}] questa opzione riceve un errore presente sul socket;
+  può essere utilizzata soltanto con \func{getsockopt} e prende per
+  \param{optval} un valore intero. 
 \end{basedescript}
 
 
 \end{basedescript}
 
 
@@ -2380,7 +2406,45 @@ certo tipo o di tutti quelli che usano un certo protocollo) rispetto alle
 funzioni viste finora che consentono di controllare quelle di un singolo
 socket. 
 
 funzioni viste finora che consentono di controllare quelle di un singolo
 socket. 
 
+Le opzioni disponibili per le proprietà della rete sono riportate nella
+gerarchia dei valori impostabili con \func{sysctl}, sotto il nodo
+\texttt{net}, o, se acceduti tramite l'interfaccia del filesystem
+\texttt{/proc}, sotto \texttt{/proc/sys/net}. In genere sotto questa directory
+compaiono le sottodirectory (corrispondenti ad altrettanti sottonodi per
+\func{sysctl}) relative ai vari protocolli e tipi di interfacce su cui è
+possibile intervenire; un contenuto tipico è il seguente:
+\begin{verbatim}
+/proc/sys/net/
+|-- core
+|-- ethernet
+|-- ipv4
+|-- ipv6
+|-- irda
+|-- token-ring
+`-- unix
+\end{verbatim}
+
+
+Nella directory \texttt{/proc/sys/net/core} sono disponibili le opzioni
+generiche dei socket, descritte anche nella rispettiva pagina di
+manuale.\foonote{quella accessibile con \texttt{man 7 socket}.} Queste sono:
 
 
+\begin{basedescript}{\desclabelwidth{3cm}\desclabelstyle{\nextlinelabel}}
+\item[\texttt{rmem\_default}] imposta la dimensione di default del buffer di
+  lettura (cioè per i dati in ingresso) dei socket.
+\item[\texttt{rmem\_max}] imposta la dimensione massima che si può assegnare al
+  buffer di ingresso dei socket attraverso l'uso dell'opzione
+  \const{SO\_RCVBUF}.
+\item[\texttt{wmem\_default}] imposta la dimensione di default del buffer di
+  scrittura (cioè per i dati in uscita) dei socket.
+\item[\texttt{wmem\_max}] imposta la dimensione massima che si può assegnare al
+  buffer di uscita dei socket attraverso l'uso dell'opzione
+  \const{SO\_SNDBUF}.
+\item[\texttt{message\_cost}] 
+\item[\texttt{message\_burst}] 
+\item[\texttt{netdev\_max\_backlog}] 
+\item[\texttt{optmem\_max}] 
+\end{basedescript}
 
 
 %%% Local Variables: 
 
 
 %%% Local Variables: