X25(7)

NAZWA
x25 - ITU-T X.25 / ISO-8208 protocol interface

SKŁADNIA
#include <sys/socket.h>
#include <linux/x25.h>

x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);

OPIS
Gniazda X25 stanowią interfejs do warstwy pakietów protokołu X.25. Umożliwiają łączenie się aplikacji przez publiczną sieć danych X.25, zgodnie z opisem w zaleceniach Międzynarodowej Unii Telekomunikacyjnej dotyczących X25 (tryb DTE-DCE X.25). Gniazda X25 mogą również być stosowane do łączności bez pośrednictwa sieci X.25 (trybu DTE-DCE X.25), jak opisano to w ISO-8208.

Granice komunikatów są zachowane — odczyt z gniazda za pomocą read(2) spowoduje otrzymanie tej samej porcji danych, którą wyprowadzono za pomocą odpowiadającego mu write(2) do gniazda z drugiej strony połączenia. Gdy jest potrzeba, jądro przeprowadza podział i powtórne złożenie długich komunikatów z wykorzystaniem bitu M protokołu X.25. Nie ma zakodowanego na stałe górnego ograniczenia rozmiaru komunikatu. Jednakże powtórne złożenie długiego komunikatu może się nie powieść w przypadku tymczasowego braku zasobów systemowych lub gdy ograniczenia innych zasobów (takich jak pamięć dla gniazd czy ograniczenia rozmiaru bufora) okażą się istotne. Gdy zajdzie taka sytuacja, połączenie X.25 zostanie zainicjowane ponownie.

  Adresy gniazda
Rodzina adresów gniazd AF_X25 korzysta do reprezentacji adresów sieciowych ze struktury struct sockaddr_x25 zdefiniowanej w zaleceniach ITU-T dla X.121.

    struct sockaddr_x25 {
        sa_family_t sx25_family;    /* musi być AF_X25 */
        x25_address sx25_addr;      /* adres X.121 */
    };

sx25_addr zawiera tablicą znakową x25_addr[] interpretowaną jako zakończony znakiem NULL łańcuch. sx25_addr.x25_addr[] składa się z maksymalnie 15 (nie licząc końcowego bajtu zerowego) znaków ASCII tworzących adres X.121. Dozwolone są jedynie cyfry dziesiętne od "0" do "9".

  Opcje gniazda
Następujące specyficzne dla X.25 opcje gniazd można ustawiać za pomocą setsockopt(2) i odczytywać za pomocą getsockopt(2), gdy parametr level jest ustawiony na SOL_X25.

X25_QBITINCL
    Określa, czy bit Q protokołu X.25 (kwalifikowany bit danych - Qualified Data Bit) jest dostępny dla programu użytkownika. Oczekuje argumentu całkowitego. Gdy argument ten jest ustawiony na 0 (wartość domyślna), bit Q nigdy nie jest ustawiany w pakietach wychodzących, a bit Q pakietów przychodzących jest ignorowany. Gdy argument tjest ustawiony na 1, do każdego komunikatu odczytanego z gniazda lub zapisanego do niego jest dołączany dodatkowy pierwszy bajt. Dla danych odczytanych z gniazda wartość 0 tego bajtu oznacza, że bity Q odpowiednich przychodzących pakietów z danymi nie były ustawione. Wartość 1 pierwszego bajtu oznacza, że bity Q odpowiednich przychodzących pakietów z danymi były ustawione. Gdy pierwszy bajt danych zapisywanych do gniazda jest równy 1, to zostanie ustawiony bit Q odpowiednich wysyłanych pakietów. Gdy pierwszy bajt jest równy 0, bit Q nie zostanie ustawiony.

WERSJE
Rodzina protokołów AF_X25 pojawiła się w Linuksie 2.2.

BŁĘDY
Mnóstwo, gdyż implementacja X.25 PLP jest CONFIG_EXPERIMENTAL.

Ta strona podręcznika jest niekompletna.

Nie ma jeszcze przeznaczonego dla programistów aplikacji pliku nagłówkowego; trzeba posługiwać się plikiem nagłówkowym jądra <linux/x25.h>. Z CONFIG_EXPERIMENTAL może wynikać niezgodność interfejsu binarnego w przyszłych wersjach.

Zdarzenia X.25 N-Reset nie propagują się jeszcze do procesów użytkownika. Wobec tego, w przypadku wystąpienia błędu, dane mogą zostać utracone bez ostrzeżenia.

ZOBACZ TAKŻE
socket(2), socket(7)

Jonathan Simon Naylor: “The Re-Analysis and Re-Implementation of X.25”. Dostępne pod adresem ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz.

O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.13 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.