cisco_ios_xr_mpls_te_oper_mpls_tp_tp_tunnels_tp_detail_tunnels_tp_detail_tunnel

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2019 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Cisco-IOS-XR-mpls-te-oper:mpls-tp/tp-tunnels/tp-detail-tunnels/tp-detail-tunnel

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MplsTeTpDetailTunnelInfo

type MplsTeTpDetailTunnelInfo struct {
	Tunnel                       *MplsTeTpTunnelInfo          `protobuf:"bytes,50,opt,name=tunnel,proto3" json:"tunnel,omitempty"`
	WorkingLsp                   *MplsTeTpDetailTunnelLspInfo `protobuf:"bytes,51,opt,name=working_lsp,json=workingLsp,proto3" json:"working_lsp,omitempty"`
	ProtectLsp                   *MplsTeTpDetailTunnelLspInfo `protobuf:"bytes,52,opt,name=protect_lsp,json=protectLsp,proto3" json:"protect_lsp,omitempty"`
	ReqBandwidth                 uint32                       `protobuf:"varint,53,opt,name=req_bandwidth,json=reqBandwidth,proto3" json:"req_bandwidth,omitempty"`
	OamInterval                  uint32                       `protobuf:"varint,54,opt,name=oam_interval,json=oamInterval,proto3" json:"oam_interval,omitempty"`
	BfdIntervalActive            uint32                       `protobuf:"varint,55,opt,name=bfd_interval_active,json=bfdIntervalActive,proto3" json:"bfd_interval_active,omitempty"`
	BfdIntervalActiveInMicroSec  bool                         `` /* 152-byte string literal not displayed */
	BfdMultiplierActive          uint32                       `protobuf:"varint,57,opt,name=bfd_multiplier_active,json=bfdMultiplierActive,proto3" json:"bfd_multiplier_active,omitempty"`
	BfdIntervalStandby           uint32                       `protobuf:"varint,58,opt,name=bfd_interval_standby,json=bfdIntervalStandby,proto3" json:"bfd_interval_standby,omitempty"`
	BfdIntervalStandbyInMicroSec bool                         `` /* 155-byte string literal not displayed */
	BfdMultiplierStandby         uint32                       `protobuf:"varint,60,opt,name=bfd_multiplier_standby,json=bfdMultiplierStandby,proto3" json:"bfd_multiplier_standby,omitempty"`
	TunnelUpTime                 uint32                       `protobuf:"varint,61,opt,name=tunnel_up_time,json=tunnelUpTime,proto3" json:"tunnel_up_time,omitempty"`
	OamProtectionTriggers        *MplsTeTpOamProtTrigger      `` /* 127-byte string literal not displayed */
	SwitchoverTrig               string                       `protobuf:"bytes,63,opt,name=switchover_trig,json=switchoverTrig,proto3" json:"switchover_trig,omitempty"`
	SwitchOverTime               uint32                       `protobuf:"varint,64,opt,name=switch_over_time,json=switchOverTime,proto3" json:"switch_over_time,omitempty"`
	XXX_NoUnkeyedLiteral         struct{}                     `json:"-"`
	XXX_unrecognized             []byte                       `json:"-"`
	XXX_sizecache                int32                        `json:"-"`
}

func (*MplsTeTpDetailTunnelInfo) Descriptor

func (*MplsTeTpDetailTunnelInfo) Descriptor() ([]byte, []int)

func (*MplsTeTpDetailTunnelInfo) GetBfdIntervalActive

func (m *MplsTeTpDetailTunnelInfo) GetBfdIntervalActive() uint32

func (*MplsTeTpDetailTunnelInfo) GetBfdIntervalActiveInMicroSec

func (m *MplsTeTpDetailTunnelInfo) GetBfdIntervalActiveInMicroSec() bool

func (*MplsTeTpDetailTunnelInfo) GetBfdIntervalStandby

func (m *MplsTeTpDetailTunnelInfo) GetBfdIntervalStandby() uint32

func (*MplsTeTpDetailTunnelInfo) GetBfdIntervalStandbyInMicroSec

func (m *MplsTeTpDetailTunnelInfo) GetBfdIntervalStandbyInMicroSec() bool

func (*MplsTeTpDetailTunnelInfo) GetBfdMultiplierActive

func (m *MplsTeTpDetailTunnelInfo) GetBfdMultiplierActive() uint32

func (*MplsTeTpDetailTunnelInfo) GetBfdMultiplierStandby

func (m *MplsTeTpDetailTunnelInfo) GetBfdMultiplierStandby() uint32

func (*MplsTeTpDetailTunnelInfo) GetOamInterval

func (m *MplsTeTpDetailTunnelInfo) GetOamInterval() uint32

func (*MplsTeTpDetailTunnelInfo) GetOamProtectionTriggers

func (m *MplsTeTpDetailTunnelInfo) GetOamProtectionTriggers() *MplsTeTpOamProtTrigger

func (*MplsTeTpDetailTunnelInfo) GetProtectLsp

func (*MplsTeTpDetailTunnelInfo) GetReqBandwidth

func (m *MplsTeTpDetailTunnelInfo) GetReqBandwidth() uint32

func (*MplsTeTpDetailTunnelInfo) GetSwitchOverTime

func (m *MplsTeTpDetailTunnelInfo) GetSwitchOverTime() uint32

func (*MplsTeTpDetailTunnelInfo) GetSwitchoverTrig

func (m *MplsTeTpDetailTunnelInfo) GetSwitchoverTrig() string

func (*MplsTeTpDetailTunnelInfo) GetTunnel

func (*MplsTeTpDetailTunnelInfo) GetTunnelUpTime

func (m *MplsTeTpDetailTunnelInfo) GetTunnelUpTime() uint32

func (*MplsTeTpDetailTunnelInfo) GetWorkingLsp

func (*MplsTeTpDetailTunnelInfo) ProtoMessage

func (*MplsTeTpDetailTunnelInfo) ProtoMessage()

func (*MplsTeTpDetailTunnelInfo) Reset

func (m *MplsTeTpDetailTunnelInfo) Reset()

func (*MplsTeTpDetailTunnelInfo) String

func (m *MplsTeTpDetailTunnelInfo) String() string

func (*MplsTeTpDetailTunnelInfo) XXX_DiscardUnknown

func (m *MplsTeTpDetailTunnelInfo) XXX_DiscardUnknown()

func (*MplsTeTpDetailTunnelInfo) XXX_Marshal

func (m *MplsTeTpDetailTunnelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MplsTeTpDetailTunnelInfo) XXX_Merge

func (m *MplsTeTpDetailTunnelInfo) XXX_Merge(src proto.Message)

func (*MplsTeTpDetailTunnelInfo) XXX_Size

func (m *MplsTeTpDetailTunnelInfo) XXX_Size() int

func (*MplsTeTpDetailTunnelInfo) XXX_Unmarshal

func (m *MplsTeTpDetailTunnelInfo) XXX_Unmarshal(b []byte) error

type MplsTeTpDetailTunnelInfo_KEYS

type MplsTeTpDetailTunnelInfo_KEYS struct {
	TpTunnelName         string   `protobuf:"bytes,1,opt,name=tp_tunnel_name,json=tpTunnelName,proto3" json:"tp_tunnel_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*MplsTeTpDetailTunnelInfo_KEYS) Descriptor

func (*MplsTeTpDetailTunnelInfo_KEYS) Descriptor() ([]byte, []int)

func (*MplsTeTpDetailTunnelInfo_KEYS) GetTpTunnelName

func (m *MplsTeTpDetailTunnelInfo_KEYS) GetTpTunnelName() string

func (*MplsTeTpDetailTunnelInfo_KEYS) ProtoMessage

func (*MplsTeTpDetailTunnelInfo_KEYS) ProtoMessage()

func (*MplsTeTpDetailTunnelInfo_KEYS) Reset

func (m *MplsTeTpDetailTunnelInfo_KEYS) Reset()

func (*MplsTeTpDetailTunnelInfo_KEYS) String

func (*MplsTeTpDetailTunnelInfo_KEYS) XXX_DiscardUnknown

func (m *MplsTeTpDetailTunnelInfo_KEYS) XXX_DiscardUnknown()

func (*MplsTeTpDetailTunnelInfo_KEYS) XXX_Marshal

func (m *MplsTeTpDetailTunnelInfo_KEYS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MplsTeTpDetailTunnelInfo_KEYS) XXX_Merge

func (m *MplsTeTpDetailTunnelInfo_KEYS) XXX_Merge(src proto.Message)

func (*MplsTeTpDetailTunnelInfo_KEYS) XXX_Size

func (m *MplsTeTpDetailTunnelInfo_KEYS) XXX_Size() int

func (*MplsTeTpDetailTunnelInfo_KEYS) XXX_Unmarshal

func (m *MplsTeTpDetailTunnelInfo_KEYS) XXX_Unmarshal(b []byte) error

type MplsTeTpDetailTunnelLspInfo

type MplsTeTpDetailTunnelLspInfo struct {
	BriefInformation     *MplsTeTpTunnelLspInfo `protobuf:"bytes,1,opt,name=brief_information,json=briefInformation,proto3" json:"brief_information,omitempty"`
	OamRefreshInterval   uint32                 `protobuf:"varint,2,opt,name=oam_refresh_interval,json=oamRefreshInterval,proto3" json:"oam_refresh_interval,omitempty"`
	TpOutLabel           uint32                 `protobuf:"varint,3,opt,name=tp_out_label,json=tpOutLabel,proto3" json:"tp_out_label,omitempty"`
	LinkId               uint32                 `protobuf:"varint,4,opt,name=link_id,json=linkId,proto3" json:"link_id,omitempty"`
	OutInterfaceName     string                 `protobuf:"bytes,5,opt,name=out_interface_name,json=outInterfaceName,proto3" json:"out_interface_name,omitempty"`
	OutNextHop           string                 `protobuf:"bytes,6,opt,name=out_next_hop,json=outNextHop,proto3" json:"out_next_hop,omitempty"`
	InLabel              uint32                 `protobuf:"varint,7,opt,name=in_label,json=inLabel,proto3" json:"in_label,omitempty"`
	ReservedBandwidth    uint32                 `protobuf:"varint,8,opt,name=reserved_bandwidth,json=reservedBandwidth,proto3" json:"reserved_bandwidth,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (*MplsTeTpDetailTunnelLspInfo) Descriptor

func (*MplsTeTpDetailTunnelLspInfo) Descriptor() ([]byte, []int)

func (*MplsTeTpDetailTunnelLspInfo) GetBriefInformation

func (m *MplsTeTpDetailTunnelLspInfo) GetBriefInformation() *MplsTeTpTunnelLspInfo

func (*MplsTeTpDetailTunnelLspInfo) GetInLabel

func (m *MplsTeTpDetailTunnelLspInfo) GetInLabel() uint32

func (*MplsTeTpDetailTunnelLspInfo) GetLinkId

func (m *MplsTeTpDetailTunnelLspInfo) GetLinkId() uint32

func (*MplsTeTpDetailTunnelLspInfo) GetOamRefreshInterval

func (m *MplsTeTpDetailTunnelLspInfo) GetOamRefreshInterval() uint32

func (*MplsTeTpDetailTunnelLspInfo) GetOutInterfaceName

func (m *MplsTeTpDetailTunnelLspInfo) GetOutInterfaceName() string

func (*MplsTeTpDetailTunnelLspInfo) GetOutNextHop

func (m *MplsTeTpDetailTunnelLspInfo) GetOutNextHop() string

func (*MplsTeTpDetailTunnelLspInfo) GetReservedBandwidth

func (m *MplsTeTpDetailTunnelLspInfo) GetReservedBandwidth() uint32

func (*MplsTeTpDetailTunnelLspInfo) GetTpOutLabel

func (m *MplsTeTpDetailTunnelLspInfo) GetTpOutLabel() uint32

func (*MplsTeTpDetailTunnelLspInfo) ProtoMessage

func (*MplsTeTpDetailTunnelLspInfo) ProtoMessage()

func (*MplsTeTpDetailTunnelLspInfo) Reset

func (m *MplsTeTpDetailTunnelLspInfo) Reset()

func (*MplsTeTpDetailTunnelLspInfo) String

func (m *MplsTeTpDetailTunnelLspInfo) String() string

func (*MplsTeTpDetailTunnelLspInfo) XXX_DiscardUnknown

func (m *MplsTeTpDetailTunnelLspInfo) XXX_DiscardUnknown()

func (*MplsTeTpDetailTunnelLspInfo) XXX_Marshal

func (m *MplsTeTpDetailTunnelLspInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MplsTeTpDetailTunnelLspInfo) XXX_Merge

func (m *MplsTeTpDetailTunnelLspInfo) XXX_Merge(src proto.Message)

func (*MplsTeTpDetailTunnelLspInfo) XXX_Size

func (m *MplsTeTpDetailTunnelLspInfo) XXX_Size() int

func (*MplsTeTpDetailTunnelLspInfo) XXX_Unmarshal

func (m *MplsTeTpDetailTunnelLspInfo) XXX_Unmarshal(b []byte) error

type MplsTeTpOamProtTrigger

type MplsTeTpOamProtTrigger struct {
	Ais                  bool     `protobuf:"varint,1,opt,name=ais,proto3" json:"ais,omitempty"`
	Ldi                  bool     `protobuf:"varint,2,opt,name=ldi,proto3" json:"ldi,omitempty"`
	Lkr                  bool     `protobuf:"varint,3,opt,name=lkr,proto3" json:"lkr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*MplsTeTpOamProtTrigger) Descriptor

func (*MplsTeTpOamProtTrigger) Descriptor() ([]byte, []int)

func (*MplsTeTpOamProtTrigger) GetAis

func (m *MplsTeTpOamProtTrigger) GetAis() bool

func (*MplsTeTpOamProtTrigger) GetLdi

func (m *MplsTeTpOamProtTrigger) GetLdi() bool

func (*MplsTeTpOamProtTrigger) GetLkr

func (m *MplsTeTpOamProtTrigger) GetLkr() bool

func (*MplsTeTpOamProtTrigger) ProtoMessage

func (*MplsTeTpOamProtTrigger) ProtoMessage()

func (*MplsTeTpOamProtTrigger) Reset

func (m *MplsTeTpOamProtTrigger) Reset()

func (*MplsTeTpOamProtTrigger) String

func (m *MplsTeTpOamProtTrigger) String() string

func (*MplsTeTpOamProtTrigger) XXX_DiscardUnknown

func (m *MplsTeTpOamProtTrigger) XXX_DiscardUnknown()

func (*MplsTeTpOamProtTrigger) XXX_Marshal

func (m *MplsTeTpOamProtTrigger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MplsTeTpOamProtTrigger) XXX_Merge

func (m *MplsTeTpOamProtTrigger) XXX_Merge(src proto.Message)

func (*MplsTeTpOamProtTrigger) XXX_Size

func (m *MplsTeTpOamProtTrigger) XXX_Size() int

func (*MplsTeTpOamProtTrigger) XXX_Unmarshal

func (m *MplsTeTpOamProtTrigger) XXX_Unmarshal(b []byte) error

type MplsTeTpTunnelInfo

type MplsTeTpTunnelInfo struct {
	TunnelName           string                 `protobuf:"bytes,1,opt,name=tunnel_name,json=tunnelName,proto3" json:"tunnel_name,omitempty"`
	SourceTunnelId       uint32                 `protobuf:"varint,2,opt,name=source_tunnel_id,json=sourceTunnelId,proto3" json:"source_tunnel_id,omitempty"`
	SourceNodeId         string                 `protobuf:"bytes,3,opt,name=source_node_id,json=sourceNodeId,proto3" json:"source_node_id,omitempty"`
	SourceGlobalId       uint32                 `protobuf:"varint,4,opt,name=source_global_id,json=sourceGlobalId,proto3" json:"source_global_id,omitempty"`
	DestinationNodeId    string                 `protobuf:"bytes,5,opt,name=destination_node_id,json=destinationNodeId,proto3" json:"destination_node_id,omitempty"`
	DestinationGlobalId  uint32                 `protobuf:"varint,6,opt,name=destination_global_id,json=destinationGlobalId,proto3" json:"destination_global_id,omitempty"`
	RemoteTunnelId       uint32                 `protobuf:"varint,7,opt,name=remote_tunnel_id,json=remoteTunnelId,proto3" json:"remote_tunnel_id,omitempty"`
	AdminStatus          string                 `protobuf:"bytes,8,opt,name=admin_status,json=adminStatus,proto3" json:"admin_status,omitempty"`
	OperationStatus      string                 `protobuf:"bytes,9,opt,name=operation_status,json=operationStatus,proto3" json:"operation_status,omitempty"`
	WorkingLsp           *MplsTeTpTunnelLspInfo `protobuf:"bytes,10,opt,name=working_lsp,json=workingLsp,proto3" json:"working_lsp,omitempty"`
	ProtectLsp           *MplsTeTpTunnelLspInfo `protobuf:"bytes,11,opt,name=protect_lsp,json=protectLsp,proto3" json:"protect_lsp,omitempty"`
	ActiveLsp            string                 `protobuf:"bytes,12,opt,name=active_lsp,json=activeLsp,proto3" json:"active_lsp,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (*MplsTeTpTunnelInfo) Descriptor

func (*MplsTeTpTunnelInfo) Descriptor() ([]byte, []int)

func (*MplsTeTpTunnelInfo) GetActiveLsp

func (m *MplsTeTpTunnelInfo) GetActiveLsp() string

func (*MplsTeTpTunnelInfo) GetAdminStatus

func (m *MplsTeTpTunnelInfo) GetAdminStatus() string

func (*MplsTeTpTunnelInfo) GetDestinationGlobalId

func (m *MplsTeTpTunnelInfo) GetDestinationGlobalId() uint32

func (*MplsTeTpTunnelInfo) GetDestinationNodeId

func (m *MplsTeTpTunnelInfo) GetDestinationNodeId() string

func (*MplsTeTpTunnelInfo) GetOperationStatus

func (m *MplsTeTpTunnelInfo) GetOperationStatus() string

func (*MplsTeTpTunnelInfo) GetProtectLsp

func (m *MplsTeTpTunnelInfo) GetProtectLsp() *MplsTeTpTunnelLspInfo

func (*MplsTeTpTunnelInfo) GetRemoteTunnelId

func (m *MplsTeTpTunnelInfo) GetRemoteTunnelId() uint32

func (*MplsTeTpTunnelInfo) GetSourceGlobalId

func (m *MplsTeTpTunnelInfo) GetSourceGlobalId() uint32

func (*MplsTeTpTunnelInfo) GetSourceNodeId

func (m *MplsTeTpTunnelInfo) GetSourceNodeId() string

func (*MplsTeTpTunnelInfo) GetSourceTunnelId

func (m *MplsTeTpTunnelInfo) GetSourceTunnelId() uint32

func (*MplsTeTpTunnelInfo) GetTunnelName

func (m *MplsTeTpTunnelInfo) GetTunnelName() string

func (*MplsTeTpTunnelInfo) GetWorkingLsp

func (m *MplsTeTpTunnelInfo) GetWorkingLsp() *MplsTeTpTunnelLspInfo

func (*MplsTeTpTunnelInfo) ProtoMessage

func (*MplsTeTpTunnelInfo) ProtoMessage()

func (*MplsTeTpTunnelInfo) Reset

func (m *MplsTeTpTunnelInfo) Reset()

func (*MplsTeTpTunnelInfo) String

func (m *MplsTeTpTunnelInfo) String() string

func (*MplsTeTpTunnelInfo) XXX_DiscardUnknown

func (m *MplsTeTpTunnelInfo) XXX_DiscardUnknown()

func (*MplsTeTpTunnelInfo) XXX_Marshal

func (m *MplsTeTpTunnelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MplsTeTpTunnelInfo) XXX_Merge

func (m *MplsTeTpTunnelInfo) XXX_Merge(src proto.Message)

func (*MplsTeTpTunnelInfo) XXX_Size

func (m *MplsTeTpTunnelInfo) XXX_Size() int

func (*MplsTeTpTunnelInfo) XXX_Unmarshal

func (m *MplsTeTpTunnelInfo) XXX_Unmarshal(b []byte) error

type MplsTeTpTunnelLspInfo

type MplsTeTpTunnelLspInfo struct {
	LspId                uint32   `protobuf:"varint,1,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"`
	State                string   `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	LockOut              bool     `protobuf:"varint,3,opt,name=lock_out,json=lockOut,proto3" json:"lock_out,omitempty"`
	RxOamState           string   `protobuf:"bytes,4,opt,name=rx_oam_state,json=rxOamState,proto3" json:"rx_oam_state,omitempty"`
	TxOamState           string   `protobuf:"bytes,5,opt,name=tx_oam_state,json=txOamState,proto3" json:"tx_oam_state,omitempty"`
	BfdState             string   `protobuf:"bytes,6,opt,name=bfd_state,json=bfdState,proto3" json:"bfd_state,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*MplsTeTpTunnelLspInfo) Descriptor

func (*MplsTeTpTunnelLspInfo) Descriptor() ([]byte, []int)

func (*MplsTeTpTunnelLspInfo) GetBfdState

func (m *MplsTeTpTunnelLspInfo) GetBfdState() string

func (*MplsTeTpTunnelLspInfo) GetLockOut

func (m *MplsTeTpTunnelLspInfo) GetLockOut() bool

func (*MplsTeTpTunnelLspInfo) GetLspId

func (m *MplsTeTpTunnelLspInfo) GetLspId() uint32

func (*MplsTeTpTunnelLspInfo) GetRxOamState

func (m *MplsTeTpTunnelLspInfo) GetRxOamState() string

func (*MplsTeTpTunnelLspInfo) GetState

func (m *MplsTeTpTunnelLspInfo) GetState() string

func (*MplsTeTpTunnelLspInfo) GetTxOamState

func (m *MplsTeTpTunnelLspInfo) GetTxOamState() string

func (*MplsTeTpTunnelLspInfo) ProtoMessage

func (*MplsTeTpTunnelLspInfo) ProtoMessage()

func (*MplsTeTpTunnelLspInfo) Reset

func (m *MplsTeTpTunnelLspInfo) Reset()

func (*MplsTeTpTunnelLspInfo) String

func (m *MplsTeTpTunnelLspInfo) String() string

func (*MplsTeTpTunnelLspInfo) XXX_DiscardUnknown

func (m *MplsTeTpTunnelLspInfo) XXX_DiscardUnknown()

func (*MplsTeTpTunnelLspInfo) XXX_Marshal

func (m *MplsTeTpTunnelLspInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MplsTeTpTunnelLspInfo) XXX_Merge

func (m *MplsTeTpTunnelLspInfo) XXX_Merge(src proto.Message)

func (*MplsTeTpTunnelLspInfo) XXX_Size

func (m *MplsTeTpTunnelLspInfo) XXX_Size() int

func (*MplsTeTpTunnelLspInfo) XXX_Unmarshal

func (m *MplsTeTpTunnelLspInfo) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL