The settings i have applied in my sysctl.conf are not working. Not on reboot or after applying it using sysctl -p
Below are my sysctl.conf settings. Can someone take a look and tell me what may be causing the issue?
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536
# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
net.ipv4.tcp_keepalive_time = 4
net.ipv4.tcp_keepalive_probes = 1
net.ipv4.tcp_keepalive_intvl = 2
net.ipv4.tcp_fin_timeout = 4
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_congestion_control= cubic
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.route.flush = 1
net.ipv4.tcp_orphan_retries = 0
net.core.netdev_max_backlog = 400000
net.core.optmem_max = 10000000
net.core.rmem_default = 10000000
net.core.rmem_max = 10000000
net.core.somaxconn = 100000
net.core.wmem_default = 10000000
net.core.wmem_max = 10000000
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_ecn = 0
net.ipv4.tcp_max_syn_backlog = 12000
net.ipv4.tcp_max_tw_buckets = 2000000
net.ipv4.tcp_mem = 10240 8738000 825829120
net.ipv4.tcp_rmem = 10240 8738000 825829120
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_wmem = 10240 8738000 825829120
net.netfilter.nf_conntrack_max = 768000
net.netfilter.nf_conntrack_generic_timeout = 4
net.netfilter.nf_conntrack_tcp_timeout_established = 4
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 4
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 4
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 4
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 4
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 4
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 4
net.netfilter.nf_conntrack_tcp_timeout_close = 4
Related
I've tried to communicate my tiny Raspberry Pi Zero 2W and Raspberry Pi Pico with NRF24L01. After my researchs and tryings I decided to the projects on the internet usualy not working. After sifting through alternatives and libraries, I decided to use lib_nrf24 library at Raspberry Pi and nrf24l01.py library at Raspberry Pi Pico. When I look carefully, I saw the libraries very similar with variable names. There is some configuration parameters both of them. I tried to set the parameters in the same way in both files. And I created a sender code on Raspberry Pi Pico and create basic receiver code at Raspberry Pi Zero 2W. But it didn't work. How can I solve this issue?
Raspberry Pi Pico Code:
from machine import Pin, SPI
import struct
import time
from nrf24l01 import NRF24L01
csn = Pin(15, mode=Pin.OUT, value=1)
ce = Pin(14, mode=Pin.OUT, value=0)
pipes = (b"\xf1\xf1\xf0\xf0\xfe0", b"\xe0\xe0\xf1\xf1\xe0")
def setup():
nrf = NRF24L01(SPI(0), csn, ce, payload_size=6)
nrf.open_tx_pipe(pipes[0])
nrf.open_rx_pipe(1, pipes[1])
nrf.start_listening()
return nrf
def dataSend(nrf):
while True:
testValue = 5
print("Mesafe: ", distance, "cm")
try:
nrf.send(struct.pack("i", distance))
time.sleep(0.1)
except OSError:
print('message lost')
def auto_ack(nrf):
nrf.reg_write(0x01, 0b11111000) # enable auto-ack on all pipes
nrf = setup()
auto_ack(nrf)
dataSend(nrf)
Raspberry Pi Zero 2W Code:
import RPi.GPIO as GPIO
import time
import spidev
from lib_nrf24 import NRF24
GPIO.setmode(GPIO.BCM)
pipes = [[0xE0, 0xE0, 0xF1, 0xF1, 0xE0], [0xF1, 0xF1, 0xF0, 0xF0, 0xE0]]
radio = NRF24(GPIO,spidev.SpiDev())
radio.begin(0, 25)
radio.setPayloadSize(32)
radio.setChannel(0x05)
radio.setDataRate(NRF24.BR_1MBPS)
radio.setPALevel(NRF24.PA_MIN)
radio.openReadingPipe(1, pipes[0])
radio.printDetails()
while len(sendMessage) < 32:
sendMessage.append(0)
while True:
start = time.time()
radio.startListening()
while not radio.available(0):
time.sleep(1/100)
if time.time() - start > 2:
print("Timed out.")
break
radio.stopListening()
time.sleep(3)
Except thoose codes, when thoose codes not working I've changed some parameters in library files both of them.
**Parameters of nrf24l01.py library at Raspberry Pi Pico:
**
# nRF24L01+ registers
CONFIG = const(0x00)
EN_RXADDR = const(0x02)
SETUP_AW = const(0x03)
SETUP_RETR = const(0x04)
RF_CH = const(0x05)
RF_SETUP = const(0x06)
STATUS = const(0x07)
RX_ADDR_P0 = const(0x0A)
TX_ADDR = const(0x10)
RX_PW_P0 = const(0x11)
FIFO_STATUS = const(0x17)
DYNPD = const(0x1C)
# CONFIG register
EN_CRC = const(0x08) # enable CRC
CRCO = const(0x04) # CRC encoding scheme; 0=1 byte, 1=2 bytes
PWR_UP = const(0x02) # 1=power up, 0=power down
PRIM_RX = const(0x01) # RX/TX control; 0=PTX, 1=PRX
# RF_SETUP register
POWER_0 = const(0x00) # -18 dBm
POWER_1 = const(0x02) # -12 dBm
POWER_2 = const(0x04) # -6 dBm
POWER_3 = const(0x06) # 0 dBm
SPEED_1M = const(0x00)
SPEED_2M = const(0x08)
SPEED_250K = const(0x20)
# STATUS register
RX_DR = const(0x40) # RX data ready; write 1 to clear
TX_DS = const(0x20) # TX data sent; write 1 to clear
MAX_RT = const(0x10) # max retransmits reached; write 1 to clear
# FIFO_STATUS register
RX_EMPTY = const(0x01) # 1 if RX FIFO is empty
# constants for instructions
R_RX_PL_WID = const(0x60) # read RX payload widthx"
R_RX_PAYLOAD = const(0x61) # read RX payload
W_TX_PAYLOAD = const(0xA0) # write TX payload
FLUSH_TX = const(0xE1) # flush TX FIFO
FLUSH_RX = const(0xE2) # flush RX FIFO
NOP = const(0xFF) # use to read STATUS register
**Parameters of lib_nrf24.py library at Raspberry Pi Zero2W:
**
MAX_CHANNEL = 127
MAX_PAYLOAD_SIZE = 32
# PA Levels
PA_MIN = 0
PA_LOW = 1
PA_HIGH = 2
PA_MAX = 3
PA_ERROR = 4
# Bit rates
BR_1MBPS = 0
BR_2MBPS = 1
BR_250KBPS = 2
# CRC
CRC_DISABLED = 0
CRC_8 = 1
CRC_16 = 2
CRC_ENABLED = 3
# Registers
CONFIG = 0x00
EN_AA = 0x01
EN_RXADDR = 0x02
SETUP_AW = 0x03
SETUP_RETR = 0x04
RF_CH = 0x05
RF_SETUP = 0x06
STATUS = 0x07
OBSERVE_TX = 0x08
CD = 0x09
RX_ADDR_P0 = 0x0A
RX_ADDR_P1 = 0x0B
RX_ADDR_P2 = 0x0C
RX_ADDR_P3 = 0x0D
RX_ADDR_P4 = 0x0E
RX_ADDR_P5 = 0x0F
TX_ADDR = 0x10
RX_PW_P0 = 0x11
RX_PW_P1 = 0x12
RX_PW_P2 = 0x13
RX_PW_P3 = 0x14
RX_PW_P4 = 0x15
RX_PW_P5 = 0x16
FIFO_STATUS = 0x17
DYNPD = 0x1C
FEATURE = 0x1D
# Bit Mnemonics */
MASK_RX_DR = 6
MASK_TX_DS = 5
MASK_MAX_RT = 4
EN_CRC = 3
CRCO = 2
PWR_UP = 1
PRIM_RX = 0
ENAA_P5 = 5
ENAA_P4 = 4
ENAA_P3 = 3
ENAA_P2 = 2
ENAA_P1 = 1
ENAA_P0 = 0
ERX_P5 = 5
ERX_P4 = 4
ERX_P3 = 3
ERX_P2 = 2
ERX_P1 = 1
ERX_P0 = 0
AW = 0
ARD = 4
ARC = 0
PLL_LOCK = 4
RF_DR = 3
RF_PWR = 6
RX_DR = 6
TX_DS = 5
MAX_RT = 4
RX_P_NO = 1
TX_FULL = 0
PLOS_CNT = 4
ARC_CNT = 0
TX_REUSE = 6
FIFO_FULL = 5
TX_EMPTY = 4
RX_FULL = 1
RX_EMPTY = 0
DPL_P5 = 5
DPL_P4 = 4
DPL_P3 = 3
DPL_P2 = 2
DPL_P1 = 1
DPL_P0 = 0
EN_DPL = 2
EN_ACK_PAY = 1
EN_DYN_ACK = 0
# Instruction Mnemonics
R_REGISTER = 0x00
W_REGISTER = 0x20
REGISTER_MASK = 0x1F
ACTIVATE = 0x50
R_RX_PL_WID = 0x60
R_RX_PAYLOAD = 0x61
W_TX_PAYLOAD = 0xA0
W_ACK_PAYLOAD = 0xA8
FLUSH_TX = 0xE1
FLUSH_RX = 0xE2
REUSE_TX_PL = 0xE3
NOP = 0xFF
I changed the library parameters to be the same but still could not communicate between the two devices. I used different values with these parameters to understand where the problem is, for example, I changed the receiver and sender pipe values by crossing each other, but it still didn't work. I think the codes work well but my library RF configuration parameters are false.
I created this code because I was not able to find any functional that accomplishes my requirement.
If you can reduce it will be better.
Just enter de prefix lenght from 1 to 32 and you will get the decimal mask.
This code help me with my scripts for cisco.
import math
#Netmask octets
octet1 = [0,0,0,0,0,0,0,0]
octet2 = [0,0,0,0,0,0,0,0]
octet3 = [0,0,0,0,0,0,0,0]
octet4 = [0,0,0,0,0,0,0,0]
#POW list
pow_list = [7,6,5,4,3,2,1,0]
#Introduce prefix lenght
mask = int(input("Introduce the prefix lenght: "))
#According to the number of bits we will change the array elements from 0 to 1
while mask >= 25 and mask <= 32:
octet4[mask-25] = 1
mask -= 1
while mask >= 17 and mask <= 24:
octet3[mask-17] = 1
mask -= 1
while mask >= 9 and mask <= 16:
octet2[mask-9] = 1
mask -= 1
while mask >= 1 and mask <= 8:
octet1[mask-1] = 1
mask -= 1
#Obtain the number of ones
ones1 = octet1.count(1)
ones2 = octet2.count(1)
ones3 = octet3.count(1)
ones4 = octet4.count(1)
#Summary and reuslt of each octet.
sum1 = 0
for i in range(0,ones1):
sum1 = sum1 + math.pow(2,pow_list[i])
sum1 = int(sum1)
sum2 = 0
for i in range(0,ones2):
sum2 = sum2 + math.pow(2,pow_list[i])
sum2 = int(sum2)
sum3 = 0
for i in range(0,ones3):
sum3 = sum3 + math.pow(2,pow_list[i])
sum3 = int(sum3)
sum4 = 0
for i in range(0,ones4):
sum4 = sum4 + math.pow(2,pow_list[i])
sum4 = int(sum4)
#Join the results with a "."
decimal_netmask = str(sum1) + "." + str(sum2) + "." + str(sum3) + "." + str(sum4)
#Result
print("Decimal netmask is: "+ decimal_netmask)
Result:
Introduce the prefix lenght: 23
Decimal netmask is: 255.255.254.0
As you are probably doing more than just converting CIDR to netmask, I recommend checking out the built-in library ipaddress
from ipaddress import ip_network
cidr = input("Introduce the prefix length: ")
decimal_netmask = str(ip_network(f'0.0.0.0/{cidr}').netmask)
You can simplify your code by computing the overall mask value as an integer using the formula:
mask = 2**32 - 2**(32-prefix_length)
Then you can compute the 4 8-bit parts of the mask (by shifting and masking), appending the results to a list and then finally joining each element of the list with .:
def decimal_netmask(prefix_length):
mask = 2**32 - 2**(32-prefix_length)
octets = []
for _ in range(4):
octets.append(str(mask & 255))
mask >>= 8
return '.'.join(reversed(octets))
for pl in range(33):
print(f'{pl:3d}\t{decimal_netmask(pl)}')
Output:
0 0.0.0.0
1 128.0.0.0
2 192.0.0.0
3 224.0.0.0
4 240.0.0.0
5 248.0.0.0
6 252.0.0.0
7 254.0.0.0
8 255.0.0.0
9 255.128.0.0
10 255.192.0.0
11 255.224.0.0
12 255.240.0.0
13 255.248.0.0
14 255.252.0.0
15 255.254.0.0
16 255.255.0.0
17 255.255.128.0
18 255.255.192.0
19 255.255.224.0
20 255.255.240.0
21 255.255.248.0
22 255.255.252.0
23 255.255.254.0
24 255.255.255.0
25 255.255.255.128
26 255.255.255.192
27 255.255.255.224
28 255.255.255.240
29 255.255.255.248
30 255.255.255.252
31 255.255.255.254
32 255.255.255.255
I have written a Kafka consumer to consume encrypted data(~1MB) stream and decrypt them before adding them to the S3 bucket. It takes ~20mins to process 1000 records, and if I remove the encryption logic and run the same, it takes less than 3mins to process 1000records.
The following are the configs I am currently using.
allow.auto.create.topics = true
auto.commit.interval.ms = 5000
auto.offset.reset = latest
check.crcs = true
client.dns.lookup = use_all_dns_ips
connections.max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = true
exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.instance.id = null
heartbeat.interval.ms = 3000
interceptor.classes = []
internal.leave.group.on.close = true
internal.throw.on.fetch.stable.offset.unsupported = false
isolation.level = read_uncommitted
key.deserializer = class org.apache.kafka.common.serialization.StringDeserializer
max.partition.fetch.bytes = 1000000
max.poll.interval.ms = 300000
max.poll.records = 500
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = INFO
metrics.sample.window.ms = 30000
partition.assignment.strategy = [class org.apache.kafka.clients.consumer.RangeAssignor]
receive.buffer.bytes = 655360
reconnect.backoff.max.ms = 1000
reconnect.backoff.ms = 50
request.timeout.ms = 30000
retry.backoff.ms = 100
send.buffer.bytes = 131072
session.timeout.ms = 10000
value.deserializer = class org.apache.kafka.common.serialization.StringDeserializer
The topic has 10partitions. I consumed with multiple consumers(1-10) by assigning them to the same consumer group. But no matter how many consumers I use, it consumed the same amount of data in the given time.
How do I make consumers faster? And can Apache Spark help in this?
I am trying to build LDPHello packets, but I am not able to add optional parameter like IPv4 Transport layer using scapy.
I have done this:
ip = IP(src=src_ipv4, dst= '224.0.0.2', proto=17, ttl=1)
udp = UDP(sport=646, dport=646)
hello = LDPHello(params=[180,0,0,0,0,"2.2.2.2",0])
packet = ip / udp / hello
Which gives me output like:
###[ IP ]###
version = 4
ihl = 5
tos = 0x0
len = 54
id = 1
flags =
frag = 0
ttl = 1
proto = udp
chksum = 0x6c44
src = 10.110.99.2
dst = 224.0.0.2
\options \
###[ UDP ]###
sport = 646
dport = 646
len = 34
chksum = 0xa34c
###[ LDP ]###
version = 1
len = 22
id = 2.2.2.2
space = 0
###[ LDPHello ]###
u = 0
type = 256
len = 12
id = 0
params = [180, 0, 0]
By LDPHello Definition from scapy:
class LDPHello(_LDP_Packet):
name = "LDPHello"
fields_desc = [BitField("u", 0, 1),
BitField("type", 0x0100, 15),
ShortField("len", None),
IntField("id", 0),
CommonHelloTLVField("params", [180, 0, 0])]
After CommonHelloTLVField there is no field where we can add optional parameter like IPv4 transport Address.
While by RFC the total data structure is like:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Hello (0x0100) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Common Hello Parameters TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
I don't know how to do get output like:Contains IPv4 Transport Layer
I am trying to collect the data from the server through SNMP.
snmpwalk does not return back any essential data as a web interface does, but I need to fetch that kind of data via SNMP.
snmpwalk -c public -v 1 <ip> .
iso.3.6.1.2.1.1.1.0 = STRING: "OCMF agent SNMP"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.11606.0
iso.3.6.1.2.1.1.3.0 = Timeticks: (95236803) 11 days, 0:32:48.03
iso.3.6.1.2.1.1.4.0 = STRING: "helpdesk#pbn.com.au"
iso.3.6.1.2.1.1.5.0 = STRING: "Copyright(c)2004 Pacific Broadband Networks"
iso.3.6.1.2.1.1.6.0 = STRING: "8 Keith Campbell Court"
iso.3.6.1.2.1.1.7.0 = INTEGER: 0
iso.3.6.1.2.1.11.1.0 = Counter32: 6505
iso.3.6.1.2.1.11.2.0 = Counter32: 6580
iso.3.6.1.2.1.11.3.0 = Counter32: 127
iso.3.6.1.2.1.11.6.0 = Counter32: 41
iso.3.6.1.2.1.11.15.0 = Counter32: 225
iso.3.6.1.2.1.11.16.0 = Counter32: 6285
iso.3.6.1.2.1.11.17.0 = Counter32: 0
iso.3.6.1.2.1.11.18.0 = Counter32: 0
iso.3.6.1.2.1.11.19.0 = Counter32: 0
iso.3.6.1.2.1.11.25.0 = Counter32: 0
iso.3.6.1.2.1.11.26.0 = Counter32: 0
iso.3.6.1.2.1.11.27.0 = Counter32: 0
iso.3.6.1.2.1.11.28.0 = Counter32: 6516
iso.3.6.1.2.1.11.29.0 = Counter32: 75
iso.3.6.1.4.1.11606.1.1 = INTEGER: 1
iso.3.6.1.4.1.11606.1.2 = INTEGER: 255
iso.3.6.1.4.1.11606.1.3 = INTEGER: 0
iso.3.6.1.4.1.11606.1.4 = INTEGER: 0
iso.3.6.1.4.1.11606.1.5 = INTEGER: 0
iso.3.6.1.4.1.11606.1.6 = INTEGER: 1357399287
iso.3.6.1.4.1.11606.1.15 = INTEGER: 1357399287
End of MIB
and if I enable OID resolving in /etc/snmp/snmp.conf I get:
SNMPv2-MIB::sysDescr.0 = STRING: OCMF agent SNMP
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.11606.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (95258487) 11 days, 0:36:24.87
SNMPv2-MIB::sysContact.0 = STRING: helpdesk#pbn.com.au
SNMPv2-MIB::sysName.0 = STRING: Copyright(c)2004 Pacific Broadband Networks
SNMPv2-MIB::sysLocation.0 = STRING: 8 Keith Campbell Court
SNMPv2-MIB::sysServices.0 = INTEGER: 0
SNMPv2-MIB::snmpInPkts.0 = Counter32: 6534
SNMPv2-MIB::snmpOutPkts.0 = Counter32: 6609
SNMPv2-MIB::snmpInBadVersions.0 = Counter32: 127
SNMPv2-MIB::snmpInASNParseErrs.0 = Counter32: 41
SNMPv2-MIB::snmpInGetRequests.0 = Counter32: 225
SNMPv2-MIB::snmpInGetNexts.0 = Counter32: 6314
SNMPv2-MIB::snmpInSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetResponses.0 = Counter32: 0
SNMPv2-MIB::snmpInTraps.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetNexts.0 = Counter32: 0
SNMPv2-MIB::snmpOutSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetResponses.0 = Counter32: 6545
SNMPv2-MIB::snmpOutTraps.0 = Counter32: 75
SNMPv2-SMI::enterprises.11606.1.1 = INTEGER: 1
SNMPv2-SMI::enterprises.11606.1.2 = INTEGER: 255
SNMPv2-SMI::enterprises.11606.1.3 = INTEGER: 0
SNMPv2-SMI::enterprises.11606.1.4 = INTEGER: 0
SNMPv2-SMI::enterprises.11606.1.5 = INTEGER: 0
SNMPv2-SMI::enterprises.11606.1.6 = INTEGER: 1357399287
SNMPv2-SMI::enterprises.11606.1.15 = INTEGER: 1357399287
End of MIB
I would like to fetch the same set of parameter as available in web interface
1.MTEMP 30C O
1.LCUR 61mA O
1.LPWR 09.9mW Z
1.OMI 04.2% Z
1.ERF 20.5dBmV O
1.RFI 41.9dBmV O
1.RFO 36.6dBmV Z
1.LTEMP 31C O
Is this possible?
The dump you've provided as a result of snmpwalk command is just a snapshot of RFC1213 (mib-2) data. And yes your assumptions are correct: It is not the information you're interested in as it only contains the set of data about network interfaces and common system information (system group of MIB-II). You'll need to contact your vendor to get specific set of MIB files for this particular device. Usually the target MIB files are available on vendor's web site in Download area. The data you'd like to retrieve is usually located in private enterprise specific branch of MIB tree.
From what I see the Enterprise OID 1.3.6.1.4.1.11606 belongs to Pacific Broadband Networks (PBN).
Also I've found the definition for the root element of this MIB module:
PBN-ROOT DEFINITIONS ::= BEGIN
IMPORTS
enterprises
FROM RFC1155-SMI;
pbn OBJECT IDENTIFIER ::= { enterprises 11606 }
END