// Copyright 2023 Prometheus Team// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.package procfsimport ()// TLSStat struct represents data in /proc/net/tls_stat.// See https://docs.kernel.org/networking/tls.html#statisticstypeTLSStatstruct {// number of TX sessions currently installed where host handles cryptography TLSCurrTxSw int// number of RX sessions currently installed where host handles cryptography TLSCurrRxSw int// number of TX sessions currently installed where NIC handles cryptography TLSCurrTxDevice int// number of RX sessions currently installed where NIC handles cryptography TLSCurrRxDevice int//number of TX sessions opened with host cryptography TLSTxSw int//number of RX sessions opened with host cryptography TLSRxSw int// number of TX sessions opened with NIC cryptography TLSTxDevice int// number of RX sessions opened with NIC cryptography TLSRxDevice int// record decryption failed (e.g. due to incorrect authentication tag) TLSDecryptError int// number of RX resyncs sent to NICs handling cryptography TLSRxDeviceResync int// number of RX records which had to be re-decrypted due to TLS_RX_EXPECT_NO_PAD mis-prediction. Note that this counter will also increment for non-data records. TLSDecryptRetry int// number of data RX records which had to be re-decrypted due to TLS_RX_EXPECT_NO_PAD mis-prediction. TLSRxNoPadViolation int}// NewTLSStat reads the tls_stat statistics.func () (TLSStat, error) { , := NewFS(DefaultMountPoint)if != nil {returnTLSStat{}, }return .NewTLSStat()}// NewTLSStat reads the tls_stat statistics.func ( FS) () (TLSStat, error) { , := os.Open(.proc.Path("net/tls_stat"))if != nil {returnTLSStat{}, }defer .Close()var ( = TLSStat{} = bufio.NewScanner() )for .Scan() { := strings.Fields(.Text())iflen() != 2 {returnTLSStat{}, fmt.Errorf("%w: %q line %q", ErrFileParse, .Name(), .Text()) } := [0] , := strconv.Atoi([1])if != nil {returnTLSStat{}, }switch {case"TlsCurrTxSw": .TLSCurrTxSw = case"TlsCurrRxSw": .TLSCurrRxSw = case"TlsCurrTxDevice": .TLSCurrTxDevice = case"TlsCurrRxDevice": .TLSCurrRxDevice = case"TlsTxSw": .TLSTxSw = case"TlsRxSw": .TLSRxSw = case"TlsTxDevice": .TLSTxDevice = case"TlsRxDevice": .TLSRxDevice = case"TlsDecryptError": .TLSDecryptError = case"TlsRxDeviceResync": .TLSRxDeviceResync = case"TlsDecryptRetry": .TLSDecryptRetry = case"TlsRxNoPadViolation": .TLSRxNoPadViolation = } }return , .Err()}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.