ngscopeclient
v0.2.1
Loading...
Searching...
No Matches
lib
scopeprotocols
EthernetClause73AutonegotiationDecoder.h
Go to the documentation of this file.
1
/***********************************************************************************************************************
2
* *
3
* libscopeprotocols *
4
* *
5
* Copyright (c) 2012-2026 Andrew D. Zonenberg and contributors *
6
* All rights reserved. *
7
* *
8
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the *
9
* following conditions are met: *
10
* *
11
* * Redistributions of source code must retain the above copyright notice, this list of conditions, and the *
12
* following disclaimer. *
13
* *
14
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the *
15
* following disclaimer in the documentation and/or other materials provided with the distribution. *
16
* *
17
* * Neither the name of the author nor the names of any contributors may be used to endorse or promote products *
18
* derived from this software without specific prior written permission. *
19
* *
20
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
21
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL *
22
* THE AUTHORS BE HELD LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES *
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR *
24
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *
26
* POSSIBILITY OF SUCH DAMAGE. *
27
* *
28
***********************************************************************************************************************/
29
36
#ifndef EthernetClause73AutonegotiationDecoder_h
37
#define EthernetClause73AutonegotiationDecoder_h
38
42
struct
Clause73CodePage
43
{
44
uint8_t
selector_field;
// D[4:0]
45
uint8_t
echoed_nonce;
// D[9:5]
46
bool
c0_pause;
// D[10]
47
bool
c1_pause;
// D[11]
48
bool
c2_reserved;
// D[12]
49
bool
rf;
// D[13]
50
bool
ack;
// D[14]
51
bool
np;
// D[15]
52
uint8_t
transmitted_nonce;
// D[20:16]
53
uint32_t
technology_ability;
// D[43:21]
54
uint8_t
fec;
// D[47:44]
55
bool
code;
// D[48]
56
};
57
58
class
Clause73Waveform
:
public
SparseWaveform
<Clause73CodePage>
59
{
60
public
:
61
Clause73Waveform
(
FilterParameter
&
displayformat
) :
SparseWaveform<Clause73CodePage>
(), m_displayformat(
displayformat
) {}
62
virtual
std::string
GetText
(
size_t
)
override
;
63
virtual
std::string
GetColor
(
size_t
)
override
;
64
65
FilterParameter
& m_displayformat;
66
};
67
68
class
EthernetClause73AutonegotiationDecoder
:
public
Filter
69
{
70
public
:
71
EthernetClause73AutonegotiationDecoder
(
const
std::string&
color
);
72
73
virtual
void
Refresh(vk::raii::CommandBuffer& cmdBuf, std::shared_ptr<QueueHandle> queue)
override
;
74
75
static
std::string GetProtocolName();
76
77
static
FilterParameter
MakeDisplayFormatParameter();
78
79
enum
DisplayFormat
80
{
81
FORMAT_COMPACT,
82
FORMAT_DETAILED
83
};
84
85
PROTOCOL_DECODER_INITPROC(
EthernetClause73AutonegotiationDecoder
)
86
87
protected
:
88
FilterParameter
& m_displayformat;
89
};
90
91
#endif
AcceleratorBufferIterator
Definition
AcceleratorBuffer.h:204
Clause73Waveform
Definition
EthernetClause73AutonegotiationDecoder.h:59
Clause73Waveform::GetColor
virtual std::string GetColor(size_t) override
Returns the displayed color (in HTML #rrggbb or #rrggbbaa notation) of a given protocol sample.
Definition
EthernetClause73AutonegotiationDecoder.cpp:351
Clause73Waveform::GetText
virtual std::string GetText(size_t) override
Returns the text representation of a given protocol sample.
Definition
EthernetClause73AutonegotiationDecoder.cpp:357
EthernetClause73AutonegotiationDecoder
Definition
EthernetClause73AutonegotiationDecoder.h:69
FilterParameter
A parameter to a filter.
Definition
FilterParameter.h:86
Filter
Abstract base class for all filter graph blocks which are not physical instrument channels.
Definition
Filter.h:105
SparseWaveform
A waveform sampled at irregular intervals.
Definition
Waveform.h:514
Clause73CodePage
A single Ethernet Clause 73 autonegotiation code page (49 bits)
Definition
EthernetClause73AutonegotiationDecoder.h:43
Generated by
1.9.8