Bästa svaret
SIGPIPE är signalen ”trasigt rör” som skickas till en process när den försöker skriva till ett rör vars läsänd har stängd (eller när den försöker skriva till ett uttag som inte längre är öppet för läsning), men inte vice versa . Standardåtgärden är att avsluta processen.
Detta beteende är användbart för typiska fall av körning av processer i rörledningar. Om du kör foo | bar
får du aldrig se utdata från foo
direkt — det blir ingången till bar
och du ser bar
s utdata. Detta betyder att om till exempel bar
dör, så finns det ingen anledning att foo
fortsätter att producera utdata. Detta kan hända antingen för att bar
har misslyckats eller för att det inte längre behöver ingång (till exempel om det skannar ingången för att se till att det inte finns några fel, kan det sluta efter att ha hittat den första).
Föreställ dig vad som skulle hända om SIGPIPE inte existerade och bar
dog (antingen på grund av ett fel eller för att det helt enkelt bestämde sig för att avsluta ). foo
fortsätter att köra och den måste få en felkod när den försöker skriva. Det kan ignorera detta och fortsätta att köra, vilket gör att användaren inte får någon uppenbar indikation på att det eventuellt onormala tillståndet att bar
upphör först. När foo
dödas av SIGPIPE, kommer skalet att upptäcka detta med en av wait()
-funktionerna och skriva ut ett meddelande “Broken pipe” eller liknande.
Å andra sidan, om foo
dör först, är detta det vanliga fallet. det stänger skrivänden och sedan kommer bar
helt enkelt till EOF och avslutas normalt.
Svar
OpenConfig är en samling av industristandard YANG-modeller för konfiguration och hantering som kommer att stödjas på nätverkshårdvaru- och mjukvaruplattformar.
Det har blivit mycket dyrt för nätverksoperatörerna att upprätthålla sina automatiserade ramar för distributioner med flera leverantörer.
Även om det finns många standardgränssnittsgränssnitt finns det ingen standarddatarepresentation (Exempel, leverantör-A och leverantör-B kan stödja standardgränssnitt (som XML, REST, NETCONF …), utan datanyckelvärde är inte samma. leverantör-A kan representera gränssnittsnyckeln som ”intf” och leverantör-B kan representera gränssnittsnyckeln som ”gränssnitt”)
Så varje gång en nätoperatör lägger till / uppdaterar en ny enhet i sina distributioner från olika leverantörer, måste de uppdatera sitt automatiska ramverk och skriva översättare för att konvertera leverantörsspecifikationen fic data representation till customer data representation.
Vissa nätoperatörer som Google, AT&T, BT, Microsoft … arbetar med att driva dessa översättare till säljaren. Operatörer bryr sig inte om hur de får data, men behöver data i gemensam representation så att deras verktyg enkelt kan förstå och analysera data.
YANG-modellen används för att definiera dessa standarddatamodeller. Du kan titta på några vanliga yangmodeller @ openconfig / public
YANG (Yet Another Next Generation) är ett datadefinitionsspråk.