Have "outbound" mean Tx only for DLT_SLIP.
Filter Linux SocketCAN frames in userland if necessary.
Enable "[wlan] dir/type/subtype" for DLT_PPI.
+ Require "(iso|isis) proto" values to be within valid ranges.
rpcap:
Support user names and passwords in rpcap:// and rpcaps:// URLs.
Add a -t flag to rpcapd to specify the data channel port; from
#define ISIS_L2_CSNP 25
#define ISIS_L1_PSNP 26
#define ISIS_L2_PSNP 27
+/*
+ * The maximum possible value can also be used as a bit mask because the
+ * "PDU Type" field comprises the least significant 5 bits of a particular
+ * octet, see sections 9.5~9.13 of ISO/IEC 10589:2002(E).
+ */
+#define ISIS_PDU_TYPE_MAX 0x1FU
#ifndef ISO8878A_CONS
#define ISO8878A_CONS 0x84
break; // invalid qualifier
case Q_ISO:
+ assert_maxval(cstate, "ISO protocol", v, UINT8_MAX);
switch (cstate->linktype) {
case DLT_FRELAY:
break; // invalid qualifier
case Q_ISIS:
+ assert_maxval(cstate, "IS-IS PDU type", v, ISIS_PDU_TYPE_MAX);
b0 = gen_proto(cstate, ISO10589_ISIS, Q_ISO);
/*
* 4 is the offset of the PDU type relative to the IS-IS
expr => 'action invalid',
errstr => 'unknown PF action "invalid"',
},
+ {
+ name => 'iso_proto_256',
+ DLT => 'EN10MB',
+ expr => 'iso proto 256',
+ errstr => 'ISO protocol 256 greater than maximum 255',
+ },
+ {
+ name => 'isis_proto_32',
+ DLT => 'EN10MB',
+ expr => 'isis proto 32',
+ errstr => 'IS-IS PDU type 32 greater than maximum 31',
+ },
);
push @reject_tests, {